API 21上提供的java finishAndRemoveTask() 3 月,1 周 Questions & Answers 5091 我会终止我的应用程序,并将其从最近的任务列表中取消 finishAndRemoveTask()仅在API 21上可用 在低于21的API上我应该使用什么
# 1 楼答案 我有一个类似的用例,我需要完成所有的活动。这里有一种不用完成DroMoveTask()的方法 让你的所有活动扩展一个包含以下内容的基类: private Boolean mHasParent = false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (extras != null) { mHasParent = extras.getBoolean("hasParent", false); } } // Always start next activity by calling this. protected void startNextActivity(Intent intent) { intent.putExtra("hasParent", true); startActivityForResult(intent, 199); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if (requestCode == 199 && resultCode == FINISH_ALL) { finishAllActivities(); } } protected void finishAllActivities() { if (mHasParent) { // Return to parent activity. setResult(FINISH_ALL); } else { // This is the only activity remaining on the stack. // If you need to actually return some result, do it here. Intent resultValue = new Intent(); resultValue.putExtra(...); setResult(RESULT_OK, resultValue); } finish(); } 只需在任何活动中调用finishAllActivities(),所有活动都将展开。当然,如果您不关心最后一个活动返回的结果,那么代码可以简单得多
# 2 楼答案 对堆栈中的第一个活动做出意图,并完成当前活动: Intent intent = new Intent(this, FirstActivity.class); intent.putExtra(EXTRA_FINISH, true); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); 在FirstActivity的onResume方法中,类似这样的操作可以完成堆栈中的最后一个活动(并有望从最近的应用列表中删除该应用): if (getExtras() != null && getIntentExtra(EXTRA_FINISH, false)) { finish(); }
# 1 楼答案
我有一个类似的用例,我需要完成所有的活动。这里有一种不用完成DroMoveTask()的方法
让你的所有活动扩展一个包含以下内容的基类:
只需在任何活动中调用
finishAllActivities()
,所有活动都将展开。当然,如果您不关心最后一个活动返回的结果,那么代码可以简单得多# 2 楼答案
对堆栈中的第一个活动做出意图,并完成当前活动:
在
FirstActivity
的onResume
方法中,类似这样的操作可以完成堆栈中的最后一个活动(并有望从最近的应用列表中删除该应用):