0

我是谷歌搜索后的Android新手,我发现如果你想调用另一个活动,你必须使用
Intent intent = new Intent(getBaseContext(), Activity_Name.class);
//if Any Extra
//intent.putExtra("", "");
intent.putExtra("EmpID", EmpID);
startActivity(intent); `

现在这是一种标准方法,但如果您参考图像。我在 ListView (Activity1) 中重复了近 20 次。 工作流程

现在我相信这会不断添加,因为我的应用程序稍后会在没有任何正当理由且不在任何特定位置崩溃时崩溃。

我已禁用DataCollection 屏幕上的后退按钮(活动 2、3、4)

因此,它是一种纯粹的瀑布方法。任何建议。我应该 finish();在最后一个屏幕中添加行吗

Intent intent = new Intent(getBaseContext(), Activity_Name.class);
//if Any Extra
//intent.putExtra("", "");
intent.putExtra("EmpID", EmpID);
startActivity(intent);
finish(); `

这样它就死了,回到了前一个,那个死了,回到了前一个。然后登陆ListView。

那会是一个好方法吗。或者有什么我可以像这样调用另一个活动但系统应该忘记所有以前的活动信息的地方。

4

3 回答 3

1

如果您不希望用户倒退,请在开始新活动后立即完成当前活动。

startActivity(intent); 

称呼

finish();

如果您想清除活动堆栈,请在进行特定活动时找到您的清单(如“活动 1”)并添加属性android:clearTaskOnLaunch="true"

更多信息在这里:http: //developer.android.com/guide/topics/manifest/activity-element.html#clear

于 2013-03-19T21:39:04.687 回答
1

或者有什么我可以像这样调用另一个活动但系统应该忘记所有以前的活动信息的地方

查看 Intent Flags,例如FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_CLEAR_TOP

于 2013-03-19T21:40:58.560 回答
1

您可能最好使用startActivityForResult相当startActivity。然后,当您调用一个活动时,您知道当它完成时它将返回到调用它的活动(它将进入onActivityResult)。通过这种方式,您可以实现:

Activty 1 -> Activity 2 -> Activity 1 -> Activity 3 -> Activity 1 etc

或者

Activty 1 -> Activity 2 -> Activity 3 -> Activity 2 -> Activty 1 etc

在这两种情况下,您都不能保持活动的“通过”阶段不可见,它们只能接收“您调用的活动”触发器并传递到下一个活动。

于 2013-03-19T21:46:15.010 回答