【发布时间】:2014-05-03 00:50:14
【问题描述】:
我很想知道处理以下场景的过程,如果可以完成,我相信它将帮助很多开发人员的工作:-
场景:假设我只是在启动 Asynctask 之前检查 Internet 连接的可用性并且它是可用的。现在假设只要 3 秒后连接丢失,或者您可以说我已经关闭了 Internet,那么在这里应该怎么做才能立即处理?
我刚刚注册了一个广播接收器来处理网络连接:-
public class HotspotConnectionChecker extends BroadcastReceiver {
Context context;
SharedPreferences loginPref;
SharedPreferences.Editor prefEditor;
String username,password;
boolean isLoggedIn;
//One Empty Constructor is required
public HotspotConnectionChecker() {
}
public HotspotConnectionChecker(Context context) {
this.context = context;
}
@Override
public void onReceive(final Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetInfo = connectivityManager.getActiveNetworkInfo();
NetworkInfo mobileNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if(activeNetInfo!=null){
Toast.makeText( context, "Connected", Toast.LENGTH_SHORT ).show();
}
else if(activeNetInfo==null){
Toast.makeText( context, "No/Bad Network Connectivity", Toast.LENGTH_SHORT ).show();
}
}
}
但是,由于无法在我的场景中使用它,可能有大量的异步任务在不同的活动中工作。
请建议或给我简单的方法来解决或克服这些类型的问题。
谢谢
【问题讨论】:
标签: android performance android-asynctask broadcastreceiver