我想在启动位于Main的oncreate()方法内部的MainActivity后清除HistoryStack。由于一些问题,我不能使用android:noHistory="true",因为它给我的gPlus登录带来了问题,也不能使用finish()FLAG_ACTIVITY_NO_HISTORY,原因类似。我只想在特定情况下删除它,即在Main内部时,否则它应该在历史堆栈上。一旦进入主界面,所有历史堆栈应被清除,并且过度按回应用程序应退出。是否可能?
Main
oncreate()
android:noHistory="true"
finish()
FLAG_ACTIVITY_NO_HISTORY
wd2eg0qa1#
对于没有最近的活动,请在期望的活动中使用android:excludeFromRecents="true"。
android:excludeFromRecents="true"
rkkpypqq2#
您可以在要完成的所有活动中添加BroadcastReceiver。
public class MyActivity extends Activity { private FinishReceiver finishReceiver; private static final String ACTION_FINISH = "com.mypackage.MyActivity.ACTION_FINISH"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); finishReceiver = new FinishReceiver(); registerReceiver(finishReceiver, new IntentFilter(ACTION_FINISH)); } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(finishReceiver); } private final class FinishReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(ACTION_FINISH)) finish(); } } }
要关闭这些活动,请调用
sendBroadcast(new Intent(ACTION_FINISH));
有关详细信息,请查看此示例:http://www.hrupin.com/2011/10/how-to-finish-all-activities-in-your-android-application-through-simple-call
2条答案
按热度按时间wd2eg0qa1#
对于没有最近的活动,请在期望的活动中使用
android:excludeFromRecents="true"
。rkkpypqq2#
您可以在要完成的所有活动中添加BroadcastReceiver。
要关闭这些活动,请调用
有关详细信息,请查看此示例:
http://www.hrupin.com/2011/10/how-to-finish-all-activities-in-your-android-application-through-simple-call