Android不一致的活动从服务开始

时间:2015-08-26 12:12:20

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

所以基本上我是在实施GCM并收到通知(不点击它)后,它应该开始一项活动。这有时会起作用,而有时它并不起作用。它似乎是完全随机的。

当它有时无效时

  • 当应用程序处于前台时
  • 当应用程序在主屏幕中时(这使得它只是打开应用程序而不是预期的活动);

GCMIntentService.java(这一直被调用到startActivity):

            Intent call = new Intent(this, CallActivity.class);
            call.putExtra("name", name);
            call.putExtra("picture", picture);
            call.putExtra("latitude", latitude);
            call.putExtra("longitude", longitude);
            call.putExtra("request_id", requestId);
            call.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            call.addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
            call.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED +
                    WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD +
                    WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON +
                    WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
            startActivity(call);


但是我注意到CallActivity根本没有启动(如果它没有工作且应用程序在后台)。所以它不会调用onCreate或onResume。

如果确实会影响任何内容,则应用程序将以此模式运行:

  

机器人:launchMode =" singleTask"

这是因为在您查看所有正在运行的应用程序时基本上有两种不同的活动之前存在问题。

CallActivity清单:

<activity
        android:name=".CallActivity"
        android:excludeFromRecents="true"
        android:label="@string/app_name"
        android:noHistory="true"
        android:showOnLockScreen="true"
        android:exported="false">
        <intent-filter>
            <action android:name="android.app.action.MAIN" />
        </intent-filter>
    </activity>

感谢任何帮助。谢谢!

0 个答案:

没有答案