如何知道一项活动是否已经开始

问题描述:

我正在一个应用程序中工作,在该应用程序中,如果屏幕处于打开或关闭状态,并在屏幕打开时启动活动,但有时会启动活动,但活动已启动已经,我想问你是否有任何方式知道我的应用程序,如果一个活动已经启动。如何知道一项活动是否已经开始

当我开始我加入这个代码的活动

intent11.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

太谢谢你了。

+0

看看[onNewIntent](http://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent)),它可能适合您的目的。 – DroidBender

我认为你可以设置与活动的生命周期

class IAMActivity extends Activity { 
    static boolean isStart = false; 

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

好吧我会尝试,但只是一个问题,在我的活动时,屏幕熄灭我的活动去onResumen()?和他们当屏幕上去onStart()???这lifebicece是正确的吗?谢谢。 –

+1

我认为当关闭活动进入onPause()状态并且活动时的屏幕进入onResume()状态时。 http://developer.android.com/training/basics/activity-lifecycle/starting.html 对不起编辑。 – Rajnish

这里变量是你在找什么:

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设置为singleTasksingleInstance

<activity 
    android:launchMode="singleTask" 
    ...> 
... 
</activity> 

随着singleTask一个新的意图是通过onNewIntent()而不是onCreate()交付。

请参阅<activity>了解更多详情。