Android强制用户重新登录处理

适用情况:账号或者密码失效,需要重新登录。采用发送广播的方式提醒用户,并跳转到登录界面。

发送广播:

 Intent intent=new  Intent("OffLine");  
 sendBroadcast(intent);  


方式一:

1.创建activity基类BaseActivity,在onResume()的方法中,添加广播的过滤器。

 IntentFilter fliter=new IntentFilter();  
        fliter.addAction("OffLine");  
        receiver=new MyReceiver();  
        registerReceiver(receiver, fliter);

在onPause()的方法中,注销广播接收器

 unregisterReceiver(receiver);  

2.广播的接收器定义

 private class MyReceiver  extends BroadcastReceiver{  
  
        @Override  
        public void onReceive(final Context context, Intent intent) {  
            AlertDialog.Builder builer=new AlertDialog.Builder(context);  
            builer.setTitle("强制下线广播")  
            .setMessage("你已被强制下线,请重新登陆。")  
            .setCancelable(true)
            .setPositiveButton("确定", new OnClickListener() {  
                  
                @Override  
                public void onClick(DialogInterface dialog, int which) {  
                    ActivityCollector.finishAll()                Intent in=new Intent(context ,LoginActivity.class);  
                    startActivity(in);  
                }  
            }).show();  
        }  
          
    }   


方式二:

1.在AndroidManifest.xml文件中

    
              
                  
              
              
          

2.广播的接收器定义

 public class ForceOfflineBroadCastReceiver extends BroadcastReceiver {  
  
    @Override  
    public void onReceive(final Context context, Intent intent) {  
      AlertDialog.Builder builder = new AlertDialog.Builder(context);  
        builder.setTitle("强制下线广播");  
        builder.setMessage("你已被强制下线,请重新登陆。");   
        builder.setCancelable(false);  
        builder.setPositiveButton("确定", new OnClickListener() {  
            public void onClick(DialogInterface dialog, int which) {  
                ActivityCollector.finishAll();  
                Intent intent = new Intent(context,LoginActivity.class);  
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
                context.startActivity(intent);  
            }  
        });  
          
        AlertDialog alterDialog = builder.create();  
        alterDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);  
        alterDialog.show();  
    }  
  
}  

文章来源:http://blog.csdn.net/xiaoqun999/article/details/50735520

http://blog.csdn.net/sdddlll/article/details/54142703


你可能感兴趣的:(Android强制用户重新登录处理)