在Android中启动活动

时间:2013-03-19 21:32:03

标签: android android-layout android-intent

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

现在这是一种标准方法,但如果您参考图像。我在ListView(Activity1)中差不多20次。 Work Flow

现在我相信这会不断添加,因为我的应用程序在没有任何正当理由的情况下崩溃,而不是在任何特定位置。

我在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。

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

3 个答案:

答案 0 :(得分:1)

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

之后

startActivity(intent); 

致电

finish();

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

此处有更多信息:http://developer.android.com/guide/topics/manifest/activity-element.html#clear

答案 1 :(得分:1)

  

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

查看Intent Flags,例如FLAG_ACTIVITY_CLEAR_TASKFLAG_ACTIVITY_CLEAR_TOP

答案 2 :(得分:1)

您最好使用startActivityForResult而不是startActivity。然后,当你调用一个活动时,你知道它完成后会返回调用它的Activity(它将进入onActivityResult)。这样你就可以实现:

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

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

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