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文件中

  <receiver android:name=".ForceOfflineBroadCastReceiver" android:exported="false">  
            <intent-filter>  
                <action android:name="com.example.broadcastpractice.FORCE_OFFLINE"/>  
            </intent-filter>  
              
        </receiver>  

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


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值