我有以上活动。流程为A - B,B-C,C-D,D-E。 如果在活动E上,如果用户按下则应该直接进入活动B. 但是反向流程应该有效。表示D-C,C-B.
答案 0 :(得分:0)
将意图发送到其他活动时使用finish()
方法。在此声明后,startActivity
呼叫时使用finish()
。 finish()
方法从堆栈完成了活动。如果您要显示之前的活动,请在发送finish()
时删除Intent
方法。
答案 1 :(得分:0)
像这样打电话:)
调用所有这样的活动
Intent i = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(i);
但是当你从E按回来然后在点击
上的后退按钮中调用它 Intent i = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(i);
finish();
即只有这种特殊的E活动不会保留在堆栈中,所有其他活动都会出现,就像逆流应该有效一样。表示D-C,C-B。
答案 2 :(得分:0)
Intent intent = new Intent(this, NextActivity.class);
startActivity(intent);
finish();
其他方式是
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
和其他方式是添加
android:noHistory="true"
在您的清单中,如http://developer.android.com/guide/topics/manifest/activity-element.html#nohist
所述答案 3 :(得分:0)
在每个活动类上添加onActivityResult
。如果E完成D {#1}}将被调用,那么你可以再次完成你的D课程等等。通过这种方式,您可以处理您想要的任何内容。要获得onActivityResult
,您需要通过请求代码调用onActivityResult
来启动您的活动。
供您参考:Getting a Result from an activity
答案 4 :(得分:0)
就像
这样的startActivity Intent i = new Intent(currentActivity.this,NextActivity.class);
startActivity(i);
currentActivity.finish();
如果要杀死后台运行的活动,请使用
try
{
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("CLOSE_ALL");
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
ActivityName.this.finish();
}
};
registerReceiver(broadcastReceiver, intentFilter);
}
catch(Exception e)
{
}