您的位置:首页 > 其它

根据登陆状态判断页面变化

2016-05-16 16:04 246 查看


1.可以使用BroadcastReceiver

说说思路,通过新建广播接收器,动态注册广播接收器,由登录按钮点击发送广播,在广播接收器接收,接收后在onReceive中做出逻辑判断,然后将得到的值存在全局变量中,在需要判断页面变化的页面加入判断。

public classMyBroadcastReceiverextendsBroadcastReceiver {

Contextcontext;

MyBroadcastReceivermb;

publicMyBroadcastReceiver(Context

context) {

this.context= context;

mb=this;

};

publicvoidregisterAction(String

action) {

IntentFilterfilter =newIntentFilter();

filter.addAction(action);

context.registerReceiver(mb, filter);

}

@Override

publicvoidonReceive(Context

context, Intent intent) {

if(intent.getBooleanExtra("userpass",false)){

MainTab03.isLogin=true;

}else{

MainTab03.isLogin=false;}

}

}


2.EventBus思路跟广播一样的

啥叫EventBus?

来自百度大人的::EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。

作为一个消息总线,有三个重要的主要元素:

--Event事件

--Subscriber事件订阅者

--Publisher事件发布者,用于通知Subscriber有事件发生

基本使用步骤::

1.定义事件类型写个事件类Event类

2.定义事件处理方法

Public void onEventMainThread

3.注册订阅者

一般写在Fragment跟Activity的OnCreat()中

EventBus.getDefault().register(this);

4.取消订阅者

一般写在Fragment跟Activity中的onDestroy()中

EventBus.getDefault().unregister(this);

5.发送消息

EventBus.getDefault().post(Event类对象);

简单介绍到这吧,----具体可以查看博客:::/article/5087386.html

也是用全局变量存boolean值,在事件接受中的onEventMainThread中写IsLogin.isLogin= (Boolean)eb.getmData();

在每个页面或者点击逻辑判断if(IsLogin.isLogin)做出逻辑


3.sharedpreferences这个也应该可以,


我使用的是鸿洋大神的sharedpreferences封装。附上链接地址/article/1580292.html

不写了,一会经理该叨叨我了。

对了,如果运用ViewPager+Fragment写的框架,取消viewPager的缓存机制,可以适当的看下Fragment的懒加载,别问我,自个搜去。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: