Android:如何启动一个新的活动,但前提是它已经存在?

Android:如何启动一个新的活动,但前提是它已经存在?,android,android-activity,android-c2dm,visible,Android,Android Activity,Android C2dm,Visible,我使用的是Android-C2DM,当我收到一条推送到设备上的消息时,我想要么更新显示(如果屏幕上可以看到某个活动),要么创建一个状态栏通知(如果没有) 除了检查活动是否处于活动状态外,其他一切都正常工作。我要寻找的是一种检查活动是否处于活动状态的方法(然后我可以用if语句包围下面的代码),或者如果不可能,我想我需要一种不同的方法来完成整个过程 在C2DMBaseReceiver中: Intent i = new Intent(context, Show.class); i.putExtra("

我使用的是Android-C2DM,当我收到一条推送到设备上的消息时,我想要么更新显示(如果屏幕上可以看到某个活动),要么创建一个状态栏通知(如果没有)

除了检查活动是否处于活动状态外,其他一切都正常工作。我要寻找的是一种检查活动是否处于活动状态的方法(然后我可以用
if
语句包围下面的代码),或者如果不可能,我想我需要一种不同的方法来完成整个过程

在C2DMBaseReceiver中:

Intent i = new Intent(context, Show.class);
i.putExtra("id", id);
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
在Show.java中:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Log.v(TAG, "onNewIntent");
    // Update the display
}

有一个指向想要了解消息的活动的全局。在“活动”中,在屏幕上设置此选项(继续)。在接收器中,如果设置了活动,则调用该活动,否则在状态栏中显示通知

您可以对该模式进行更正式的实现,但仅使用全局模式是简单的,并且在大多数情况下已经足够了