所以基本上我是在实施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>
感谢任何帮助。谢谢!