Android使用广播退出应用
应用开发时需要处理安全退出应用,之前研究过Foursquare的代码,发现它用的是广播机制来处理退出应用。
public class BaseActivity extends Activity { private static final String TAG = BaseActivity.class.getSimpleName(); public static final String INTENT_ACTION_LOGGED_OUT = "INTENT_ACTION_LOGGED_OUT"; private BroadcastReceiver mLoggedOutReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Log.d(TAG, "onReceive: " + intent); finish(); } }; @Override protected void onCreate(Bundle arg0) { super.onCreate(arg0); registerReceiver(mLoggedOutReceiver, new IntentFilter( INTENT_ACTION_LOGGED_OUT)); } @Override protected void onPause() { super.onPause(); if (isFinishing()) { unregisterReceiver(mLoggedOutReceiver); } } }
让每个Activity继承BaseActivity, 当推出应用的时候,发送一条广播,应用就能安全的退出。
网上有另外一种退出方法:在Application中用List<Activity>记录打开的Activity的context,在退出的时候,遍历List<Activity>,依次fiinish activity,这种方法的问题是会一直持有改Activity的context, 使之不能及时释放资源,如果跳转的页面很多的话容易照成OOM
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。