Firebaseプッシュ通知機能を使用して1つのアプリケーションを開発します。 MainActivityと5つのフラグメントA、B、C、D、Eを作成しました。 フラグメントCを表示したいとき、プッシュ通知メッセージをクリックすると、アプリケーションが画面上で開いているときに正常に動作します。アクティビティとフラグメントを含むハンドルプッシュ通知ナビゲーション
しかし、私はアプリを殺してから通知を押すと、MainActivityのMainActivityをクリックしてMainActivityの最初の断片であるMainActivityの読み込み断片Aをクリックしました。
マイアプリの流れ:
Splash Screen -> Login Screen (Silent Login) -> Main Activity -> Load a Specific Fragment
マイコード:私はプッシュ通知アイコンをクリックすると、アプリケーションは、スプラッシュ画面から開きます
if(getIntent() != null)
{
if (getIntent().hasExtra(ARG_NOTIFICATION_FOR))
{
//Load Fragment C
}
}
:MainActivityについては
private void sendNotification(String title, String messageBody, int senderId) {
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra(ARG_NOTIFICATION_FOR, ConstantValues.NOTIFICATION_FOR_CHAT_SCREEN);
intent.putExtra(ARG_SENDER_ID, senderId);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP | Intent.FLAG_ACTIVITY_CLEAR_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 0 /* Request code */, intent, PendingIntent.FLAG_UPDATE_CURRENT);
Uri defaultSoundUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.mipmap.ic_launcher)
.setContentTitle(title)
.setContentText(messageBody)
.setAutoCancel(true)
.setSound(defaultSoundUri)
.setContentIntent(pendingIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(0 /* ID of notification */, notificationBuilder.build());
}
次のようにサイレントログイン - >メインアクティビティ - >ロードフラグメントA
主な活動はhasExtra(ARG_NOTIFICATION_FOR)
はMainActivity' 'の' oncreate'で 'intent'を取得し、それがnullだかいないかどうかを確認、それがnullでない場合は、'設定viewPager.setCurrentItem(C); ' –