如何知道一个活动是否已经启动

4

我正在开发一款应用程序,在其中我会过滤屏幕是否开启并在屏幕开启时启动一个活动,但有时它会启动该活动,但是该活动已经启动了。我想问你是否有任何方法可以在我的应用程序内部知道某个活动是否已经启动。

当我启动活动时,我添加了以下代码:

intent11.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

非常感谢你。

看一下onNewIntent,它也许适合你的目的。 - DroidBender
3个回答

2

我认为您可以在活动生命周期中设置变量。

class IAMActivity extends Activity {
    static boolean isStart = false;

  public void onStart() {
     super.onStart();
     isStart = true;
  } 
  public void onStop() {
     super.onStop();
     isStart = false;
   }
 }

好的,我会尝试翻译,但是还有一个问题,当屏幕关闭时,我的活动会进入onResumen()吗?然后当屏幕打开时,它会进入onStart()吗?这个生命周期正确吗?谢谢。 - Pablo Ortuño
1
我认为当屏幕关闭时,活动将转到onPause()状态,而当屏幕打开时,活动将转到onResume()状态。 - TheFoxLab

1

这就是您要找的内容:

 class MyActivity extends Activity {
 static boolean alreadyLaunched = false;

  @Override
  public void onStart() {
     super.onStart();
     alreadyLaunched = true;
  } 

  @Override
  public void onStop() {
     super.onStop();
     alreadyLaunched = false;
  }
}

0
如果您想将活动限制为一个实例,可以在清单文件中将launchMode设置为singleTasksingleInstance,具体取决于您的要求。
<activity
     android:launchMode="singleTask"
     ...>
...
</activity>

使用singleTask,新的意图将通过onNewIntent()而不是onCreate()传递。

有关更多详细信息,请参见<activity>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接