自定义广播的使用(目的:实现当前用户退出时,清除用户以前的操作)

来源:互联网 发布:数据分析方案 编辑:程序博客网 时间:2024/05/23 19:36

1.首先写好广播接受者:

package cn.itkt.travelsky.ui.activity.memberservice;


import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import cn.itkt.travelsky.SkyApplication;


/***
 * 
 * @ClassName: LoginStateReceiver
 * @Description: 此广播接收当点击注销按钮后发送的广播(这里用一句话描述这个类的作用)
 * @author hjw
 * @date 2012-7-5 下午1:51:15
 * 
 */
public class LoginStateReceiver extends BroadcastReceiver {


public static final String MY_ACTION = "cn.itkt.travelsky.ui.activity.memberservice";
public static final String STATE = "cancelLogin";
public static final String BUNDLE = "bundle";


@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = null;
if (intent.getAction().equals(MY_ACTION)) {
bundle = intent.getBundleExtra(BUNDLE);
if (bundle != null) {
String loginState = bundle.getString(STATE);
if (loginState != null && loginState.equals(STATE)) {
Log.i("loginState", "receiveBroadCast-BroadcastReceiver");
SkyApplication.LoginStates = false;// 注销了,这个是在全局中设置的,可以在任何地方获得
}
}
}
}
}

2.在类中注册广播(这个是普通广播,可以在第一时间让所有的接受者接收到)

private void registerBroadCast(BroadcastReceiver receiver) {
IntentFilter filter = new IntentFilter();
filter.addAction(LoginStateReceiver.MY_ACTION);
registerReceiver(receiver, filter);
Log.i("loginState", "registerBroadCast_firstGroup");
}

3.发送广播:

 /**

* @author hjw
* @Title: sendCustomBroadcast
* @Description: 发送广播(这里用一句话描述这个方法的作用)
* @param 设定文件
* @return void 返回类型
* @throws
*/
private  void sendCustomBroadcast() {
Intent intent = new Intent(LoginStateReceiver.MY_ACTION);
Bundle bundle = new Bundle();
bundle.putString(LoginStateReceiver.STATE, "cancelLogin");
intent.putExtra(LoginStateReceiver.BUNDLE, bundle);
sendBroadcast(intent);
Log.i("loginState", "sendBroadCast");
}

我要做的功能是,在点击我的航旅中的注销按钮【如图】

时,航班查询中的页面【如图】可以回到首页

【如图】


原创粉丝点击