启动actvity,但如果已经运行则重启

时间:2018-04-16 10:07:37

标签: android

如何检查活动是否已在运行,如果是,请重新启动活动?

目前,我正在使用此代码启动活动。但是,如果活动NewActivity已经运行,我想重新启动它(或发送广播)?

Intent intent = new Intent(this, NewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(EXTRA_STRING, true);
startActivity(intent);
return;

2 个答案:

答案 0 :(得分:1)

如果NewActivity已经在运行,那么只需使用此技巧重启。

 Intent intent = new Intent(this, NewActivity.class);
 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 intent.putExtra(EXTRA_STRING, true);
 finish();
 startActivity(intent);

最好你可以遵循:How do I restart an Android Activity

答案 1 :(得分:0)

如果您当前的活动是NewActivity,并且您希望自行重新启动它而不是使用

重新创建();

如果当前任何其他活动都在前台而不是使用

 Intent intent = new Intent(this, NewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
 intent.putExtra(EXTRA_STRING, true);
startActivity(intent);
 finish();

FLAG_ACTIVITY_CLEAR_TASK将清除活动堆栈中可用的所有其他活动,而FLAG_ACTIVITY_NEW_TASK将为您启动新任务NewActivity