活动中的线程在启动另一个时是否会终止?

时间:2011-12-17 17:17:22

标签: android multithreading android-activity back terminate

我有一个活动,它启动3个线程 “while(true)”loop

当我开始一个新活动时,那些线程会自行终止吗?

另一个问题是,我如何开始一项新活动,但我不想允许 '后退'按钮让我回到旧活动 - 实际上我想处理第一个活动并创建并展示一个新活动

谢谢你 罗恩

2 个答案:

答案 0 :(得分:2)

  

当我开始一个新活动时,那些线程会自行终止吗?

不,他们没有。在关闭活动之前必须先停止它们。

  

如何开始新活动,但我不想让“后退”按钮让我回到旧活动

当你开始第二个活动时,只需从第一个活动中调用finish():

Intent intent = new Intent(...);
startActivity(intent);
finish();

答案 1 :(得分:0)

当活动暂停或停止时,可能不会立即停止线程。更好的策略是让一个标志在onPause或stop被调用时立即设置为false。 线程检查此标志并自行中断或退出run方法。

如果您不希望后退按钮显示较旧的活动,则可以对旧活动使用NO_HISTORY标记http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY

如果您希望将此活动作为堆栈中的第一个活动,请使用此标志FLAG_ACTIVITY_TASK_ON_HOME