处理网络连接丢失Android从服务器取数据时



我很有兴趣知道处理以下场景的过程,如果可以做到,我相信它会帮助很多开发人员的工作:-

场景:假设我在启动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();
        }
    }
}

但是,无法在我的场景中使用它,可能有许多异步任务正在不同的活动中工作。

请建议或给我简单的方法来解决或克服这些类型的问题。

谢谢

没有办法只处理一个地方。因为如果你想通知所有的活动,那么你也会使用广播接收器。解决方案是在doInBackGround方法中注册一个广播接收器然后在onPostExecuteMethod中取消注册。

相关内容

  • 没有找到相关文章

最新更新