如何检查是否有任何活动正在运行?

时间:2015-09-17 21:39:21

标签: android android-activity google-cloud-messaging

我想处理用户点击GCM通知的行为。我想在两种情况下以不同的方式处理它:应用程序未运行(堆栈中没有前台和后台活动)并且应用程序正在运行且堆栈中至少有一个活动。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

Determining if your Android Application is in Background or Foreground是我遇到的最可靠的方法。正如该文章和其他地方所解释的那样,有许多不同的方法可以做到这一点,但如上所述使用Application.ActivityLifecycleCallbacks通常非常可靠。它会记录已启动的活动数量,如果数量大于1,则您的应用程序位于前台。

答案 1 :(得分:0)

在我的Senario中,我更改了NotificationReciever。 in" onPushReceive"来自ParsePushBroadcastReceiver的方法。 (我使用解析推送)。在您的Senario中,只是为了检测收到的通知。

@object

答案 2 :(得分:0)

使用在static中定义Activity变量的经典方法。

class MyActivity extends FragmentActivity {
     static boolean isActive = false;

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

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