Android 用广播关闭Activity
2018-01-08 18:47
337 查看
多个Activity界面跳转,关掉某个Activity
1、广播关闭Activity
通过在AndroidManifest.xml文件中,对Activity进行静态过滤action注册;
再者,需要创建BaseActivity,需关闭的Activity要继承BaseActivity。
BaseActivity.java源码
BActivity.java 源码使用
sendFinishActivityBroadcast方法也可以做成Utils工具类,这样会更方便使用,减少Activity的代码量
1、广播关闭Activity
通过在AndroidManifest.xml文件中,对Activity进行静态过滤action注册;
<activity android:name=".activity.AActivity"> <intent-filter> <action android:name="action_a" /> </intent-filter> </activity> <activity android:name=".activity.BActivity"> <intent-filter> <action android:name="action_b" /> </intent-filter> </activity>
再者,需要创建BaseActivity,需关闭的Activity要继承BaseActivity。
BaseActivity.java源码
public class BaseActivity extends Activity { //根据需求定义自己需要关闭页面的action public static final String RECEIVER_ACTION_FINISH_A = "action_a"; public static final String RECEIVER_ACTION_FINISH_B = "action_b"; private FinishActivityRecevier mRecevier; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); mRecevier = new FinishActivityRecevier(); registerFinishReciver(); } private void registerFinishReciver() { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(RECEIVER_ACTION_FINISH_A); intentFilter.addAction(RECEIVER_ACTION_FINISH_B); registerReceiver(mRecevier, intentFilter); } private class FinishActivityRecevier extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //根据需求添加自己需要关闭页面的action if (RECEIVER_ACTION_FINISH_A.equals(intent.getAction()) || RECEIVER_ACTION_FINISH_B.equals(intent.getAction()) ) { BaseActivity.this.finish(); } } } @Override protected void onDestroy() { if (mRecevier != null) { unregisterReceiver(mRecevier); } super.onDestroy(); } }
BActivity.java 源码使用
public class BActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_b); } public void onClick(View view) { switch (view.getId()){ case R.id.b_activity_btn: sendFinishActivityBroadcast(this); break; } } public static void sendFinishActivityBroadcast(Context context) { Intent intent = new Intent(BaseActivity.RECEIVER_ACTION_FINISH_A); context.sendBroadcast(intent); intent = new Intent(BaseActivity.RECEIVER_ACTION_FINISH_B); context.sendBroadcast(intent); } }
sendFinishActivityBroadcast方法也可以做成Utils工具类,这样会更方便使用,减少Activity的代码量
相关文章推荐
- android 关闭和管理所有的ACTIVITY或者是SERVICES 或者是广播
- android中关闭所有activity方法
- Android关闭应用中的所有Activity(二)
- Android开发中在一个Activity中关闭另一个Activity
- Android仿微信activity滑动关闭
- Android Activity---关闭Activity
- (转)Android - 活动(Activity), 服务(Service), 广播(Broadcast), 广播接收器(BroadcastReceiver)
- Android开发之AlarmManager的使用(开启Activity、开启服务、开启广播)
- android窗体动画:activity启动从底部向上滑动出现,关闭的时候从顶部向下滑动消失的动画实现
- Android 退出程序时同时关闭打开的多个activity
- android 关闭所有activity
- Android网络状态及关闭所有Activity
- Android(六)Activity、请求码与结果码、Intent、广播、服务
- 【小知识点总结】android:windowSoftInputMode属性详解 和 按back键直接退出Activity,不关闭软键盘的问题
- [置顶] 【Android】Android开发之Activity的管理类,结束关闭指定的Activity,单例模式封装
- 初学Android,启动,关闭Activity(七)
- android 关闭所有的Activity
- Android开发中在一个Activity中关闭另一个Activity
- 打开关闭android如何默认打开小区广播?
- Android零基础入门第74节:Activity启动和关闭