Android退出程序(二)——利用广播机制
2015-03-04 00:00
417 查看
概述:
基于上一篇博客《Android退出程序(一)——单例模式》的学习,我们知道了如何利用单例和循环遍历的方式来退出我们的应用程序。这篇博客则要从另一个角度来解决问题——广播。即是,接收到一个关闭Activity的广播时,就去关闭当前Activity。类图展示及说明:
从上面的类图中可以看到这里做了一个处理,而这个处理是学习面向对象的Coder要必须掌握的。这里就是对Activity进行了一个扩展——BaseActivity。如果我们要对每个Activity进行添加内部ExitappReceiver类的话,这样势必增加了代码量,且后期不好维护。所以这里就是把ExitappReceiver封装到了一个基础类中,然后让其他需要实现关闭activity的Activity来继承它就好了。
代码示例:
这里只贴出两个比较关键的代码:1.接收事件
public class BaseActivity extends Activity { public static final String TAG = BaseActivity.class.getName(); public static final String BROAD_CAST_MESSAGE = TAG + ".BROAD_CAST_MESSAGE"; private ExitappReceiver mReceiver = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); registerReceiver(); } private void registerReceiver() { IntentFilter filter = new IntentFilter(); try { if (mReceiver != null) { unregisterReceiver(mReceiver); } } catch (Exception e) { e.printStackTrace(); } mReceiver = new ExitappReceiver(); filter.addAction(BROAD_CAST_MESSAGE); registerReceiver(mReceiver, filter); } @Override protected void onDestroy() { if (mReceiver != null) { unregisterReceiver(mReceiver); } super.onDestroy(); } class ExitappReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(BROAD_CAST_MESSAGE)) { finish(); } } } }
2.触发事件:
public class TwoActivity extends BaseActivity { private int getLayoutResID() { return R.layout.activity_two; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(getLayoutResID()); Button nextButton = (Button) findViewById(R.id.activity_two_button); nextButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { sendBroadcast(); } }); } private void sendBroadcast() { Intent intent = new Intent(); intent.setAction(BaseActivity.BROAD_CAST_MESSAGE); sendBroadcast(intent); } }
相关文章推荐
- Android退出程序(二)——利用广播机制
- Android之利用广播实现完全退出程序功能
- android2.2完全退出程序, 使用广播机制
- android 利用广播实现程序的强制退出
- android完全退出程序, 使用广播机制。与众不同,仔细看
- Android 2.2完全退出程序, 使用广播机制
- Android2.2使用广播机制完全退出程序
- Android开发之---两个Activity之间利用广播机制更新数据
- Android中使用广播机制退出多个Activity
- Android中使用广播机制退出多个Activity
- android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler&利用broadcast广播机制
- 关于程序退出无法关闭所有界面问题 通过广播使Android程序完全退出
- Android中使用广播机制退出多个Activity
- android中的广播退出机制broadcast
- Android中使用广播机制 退出多个Activity
- Android中利用广播退出应用的所有activity
- Android中使用广播机制退出多个Activity
- 广播的妙用-android程序完全退出,销毁所有activity方法
- 通过广播使Android程序完全退出
- android之如何在两个activity之间传递handler_利用broadcast广播机制