我正在开发一款应用程序,在其中我会过滤屏幕是否开启并在屏幕开启时启动一个活动,但有时它会启动该活动,但是该活动已经启动了。我想问你是否有任何方法可以在我的应用程序内部知道某个活动是否已经启动。
当我启动活动时,我添加了以下代码:
intent11.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
非常感谢你。
我正在开发一款应用程序,在其中我会过滤屏幕是否开启并在屏幕开启时启动一个活动,但有时它会启动该活动,但是该活动已经启动了。我想问你是否有任何方法可以在我的应用程序内部知道某个活动是否已经启动。
当我启动活动时,我添加了以下代码:
intent11.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
我认为您可以在活动生命周期中设置变量。
class IAMActivity extends Activity {
static boolean isStart = false;
public void onStart() {
super.onStart();
isStart = true;
}
public void onStop() {
super.onStop();
isStart = false;
}
}
这就是您要找的内容:
class MyActivity extends Activity {
static boolean alreadyLaunched = false;
@Override
public void onStart() {
super.onStart();
alreadyLaunched = true;
}
@Override
public void onStop() {
super.onStop();
alreadyLaunched = false;
}
}
launchMode
设置为singleTask
或singleInstance
,具体取决于您的要求。<activity
android:launchMode="singleTask"
...>
...
</activity>
使用singleTask
,新的意图将通过onNewIntent()
而不是onCreate()
传递。
有关更多详细信息,请参见<activity>。