45

TaskStackBuilder通知を作成するときにを使用するのはなぜですか? その背後にあるロジックがわかりません。

誰か説明してくれませんか。

public void showText(final String text){
    Intent intent = new Intent (this, MainActivity.class);
    TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
    stackBuilder.addParentStack(MainActivity.class);
    stackBuilder.addNextIntent(intent);
    PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);
    Notification notification = new Notification.Builder(this)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentTitle(getString(R.string.app_name))
            .setAutoCancel(true)
            .setPriority(Notification.PRIORITY_MAX)
            .setDefaults(Notification.DEFAULT_VIBRATE)
            .setContentIntent(pendingIntent)
            .setContentText(text)
            .build();
    NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(NOTIFICACTION_ID, notification);
}
4

6 に答える 6

0

私は同じ問題を抱えていて、この方法で解決しました:

  1. すでに提案し たようandroid:parentActivityName=".MainActivity"に、AndroidManifest ファイルに追加しました。

  2. また、すべてのクラスにonResumeメソッドを追加しました

  3. TaskStackBuilder を使用して保留中のインテントを作成しました。

    インテント インテント = 新しいインテント(コンテキスト、myClass); TaskStackBuilder taskStackBuilder = TaskStackBuilder.create(context); taskStackBuilder.addNextIntentWithParentStack(インテント); PendingIntent pendingIntent = taskStackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

于 2019-12-17T10:30:32.813 に答える