使用广播销毁多个Activity
来源:互联网 发布:知乎怎么看题主 编辑:程序博客网 时间:2024/06/05 20:46
由于业务需求,我们有时会碰到这样的问题:有一系列Activity直行流程为,A->B->C-D, B可以返回到A,C可以返回到B,但是从D返回必须直接退出程序,
由于A,B,C可以前进也可以后退,所以单纯的调用finish()方法不行,下面是一种使用广播来实现这个功能。
1,实现一个Service,这个Service能够发送广播。
public class FinishActivityService extends IntentService{public static final String FINISH_ACTIVITY_ACTION = "com.compusassistant.broadcastreceiver.finish";public FinishActivityService() {super("FinishActivityService");}@Overrideprotected void onHandleIntent(Intent intent) {Intent broadcastIntent = new Intent(FINISH_ACTIVITY_ACTION);sendBroadcast(broadcastIntent);}}
2,在A,B,C中都注册一个广播
public class ActivityA extends Activityprivate static final String TAG = "ActivityA";private Context mContext = this;private IntentFilter mIntentFilter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.select_school_activity);mIntentFilter = new IntentFilter(FinishActivityService.FINISH_ACTIVITY_ACTION);registerReceiver(finishActivityReceiver, mIntentFilter);}BroadcastReceiver finishActivityReceiver = new BroadcastReceiver(){@Overridepublic void onReceive(Context context, Intent intent) {finish();}};
<span style="white-space:pre"></span>public void onDestroy(){<span style="font-family: Arial, Helvetica, sans-serif;"></span>
<span style="white-space:pre"></span><pre code_snippet_id="588048" snippet_file_name="blog_20150124_2_5349661" name="code" class="java"><span style="white-space:pre"></span>unregisterReceiver(finishActivityReceiver);
<span style="white-space:pre"></span>}}3,在D中启动服务
public class MainActivity extends Activity{private static final String TAG = "BaseActivity";private Context mContext = this;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main_activity);startService(new Intent(mContext,FinishActivityService.class));}}
这样,当进入到D后,返回后会直接退出程序了
0 0
- 使用广播销毁多个Activity
- 使用广播退出多个activity
- 如何销毁Activity,和如何一次销毁多个activity
- 广播退出多个Activity
- Android中使用广播机制退出多个Activity
- Android中使用广播机制退出多个Activity
- Android中使用广播机制 退出多个Activity
- Android中使用广播机制退出多个Activity
- android退出程序销毁多个Activity方法
- 最简单的方式添加和销毁多个activity
- Android如何优雅的销毁多个activity
- 使用服务动态注册,销毁广播
- android 多个activity 共用一套广播BroadcastReceiver
- 利用Android广播机制关闭多个activity
- 销毁 Activity
- 巧用Android启动模式之singleTask,一步销毁多个Activity
- 广播接收销毁
- angularJS中的广播销毁
- spark streaming NotSerializableException
- js 插入到外面
- 罗德施瓦茨R&S FSV型号频谱仪解调方法
- thinkphp上传文件
- ZooKeeper集群搭建
- 使用广播销毁多个Activity
- 河北活塞洗煤机_复合式干法洗煤机特点由于风力作用在分选过程中可去除一定比
- TCP拥塞控制算法 优缺点 适用环境 性能分析
- 学习:wp构建的网站
- 机房重构之数据库设计
- duilib各种布局的作用,相对布局与绝对布局的的意义与用法
- 分支结构 if和switch-case
- IOS学习之——表视图3 自定义单元格
- 哈希运用