我有一个Activity,它在onCreate方法中从web查找数据.用户点击通知即激活活动.因此,用户将快速打开手机,解锁,滑动打开通知,点按通知以及在手机连接到互联网之前激活活动是一个常见问题.
我有一个友好的AlertDialog,d出告知用户无法接收数据,并在连接网络时再试一次;但有没有办法让Activity主动告诉手机连接并检测到正在建立连接,然后等待连接建立,然后成功加载其数据?
解决方法:
通常,你会做这样的事情:
@OverrIDepublic voID onResume(){ super.onResume(); // first, check connectivity if ( isOnline ){ // do things if it there's network connection }else{ // as it seems there's no Internet connection // ask the user to activate it new AlertDialog.Builder(YourActivity.this) .setTitle("Connection Failed") .setMessage("This application requires network access. Please, enable " + "mobile network or Wi-Fi.") .setPositivebutton("Accept", new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog, int which) { // THIS IS WHAT YOU ARE DOING, Jul YourActivity.this.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS)); } }) .setNegativebutton("Cancel", new DialogInterface.OnClickListener() { @OverrIDe public voID onClick(DialogInterface dialog, int which) { YourActivity.this.finish(); } }) .show(); }}@H_301_12@
这个想法是要求用户去配置网络连接.然后,如果用户确实想要配置它,您将调用Settings.ACTION_WIRELESS_SETTINGS意图.
另外,请注意isOnline变量,它是一个布尔值,用于指示是否存在网络连接.为了设置该变量,您可以使用这样的外部简单类:
public class CheckConnectivity { public static boolean isOnline(Context context) { ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if( cm == null ) return false; NetworkInfo info = cm.getActiveNetworkInfo(); if( info == null ) return false; return info.isConnectedOrConnecting(); }}@H_301_12@
此外,您必须将此权限添加到AndroIDManifest.xml文件中:
<uses-permission androID:name="androID.permission.ACCESS_NETWORK_STATE" />@H_301_12@
总结 以上是内存溢出为你收集整理的java – Android:Activity建立网络连接全部内容,希望文章能够帮你解决java – Android:Activity建立网络连接所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)