2
我必須在收到通知時啓動應用程序。當應用程序被終止並收到通知時(即條件內部的代碼),以下代碼工作正常。但是當應用程序在前臺或後臺運行時,會創建多個活動實例(即其他條件中的代碼段)。這不是在接收通知時必須啓動的MainActivity,而是包含廣播Receiver的其他一些活動。 我在GCMintentService類的onMessage中添加了以下幾行。在收到通知時自動打開Android活動
if (currentPackage.equalsIgnoreCase(context.getPackageName()
.toString())) {
broadcastMessage(context, message);
} else {
Intent mIntent = new Intent(context, MainActivity.class);
mIntent.setAction(Intent.ACTION_MAIN);
mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(mIntent);
}
在活動中,在BroadcastReceiver的onReceive方法下,我再次啓動活動。
private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
startActivity(getIntent().setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
}
};