我非常感兴趣知道处理以下场景的程序,如果能够完成,我相信它会对很多开发人员的工作有所帮助: -
场景:假设我在启动Asynctask之前只检查Internet连接的可用性并且它可用。现在假设在3秒后连接丢失或者你可以说我已经关闭了互联网,那么人们应该做什么来立即处理?
我刚刚注册了一个广播接收器来处理网络连接: -
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();
}
}
}
但是,无法在我的场景中使用它,可能会有大量的asynctasks在不同的活动中工作。
请建议或给我简单的方法来解决或克服这些类型的问题。
由于
答案 0 :(得分:0)
没有办法只在一个地方处理它。因为如果您想通知所有活动,那么您也将使用广播接收器。因此,解决方案是在doInBackGround方法中注册广播接收器,并在onPostExecuteMethod中取消注册。