我从活动A开始->B->C->D->E ..当我从D->E前进时,堆栈中不应该有任何活动,但是用户可以使用返回按钮从D返回到C(无需刷新活动C,就像正常的后退功能一样)
我从活动A开始->B->C->D->E ..当我从D->E前进时,堆栈中不应该有任何活动,但是用户可以使用返回按钮从D返回到C(无需刷新活动C,就像正常的后退功能一样)
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));
通过简单的调用可以完成 Android 应用程序中所有活动的结束,这个不错的例子也值得参考。
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
然后启动您的Activity:
startActivity(intent)
更多信息:任务和返回栈
Intent intent = new Intent(getApplicationContext(),MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
这是清除已经在堆栈中的后退活动的正确方式。
希望这能有所帮助。