通知PendingIntentからAndroidバックスタックが作成されていません

コーリーロイ

通知に従ったときにアプリがメモリにない場合、問題が発生します。バックスタックは作成されません。開発者ガイドに従った手順に従いました。見逃したビットを見せてください。そうしないとHomeActivity、次のインテントで手動でバックスタックを作成するために、すべてのインテントをルーティングする必要があります。

AndroidManifest.xml

<activity
    android:name=".activity.HomeActivity"
    android:clearTaskOnLaunch="true"
    android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
    android:icon="@drawable/actionbar_logo"
    android:label="@string/activity_label_home"
    android:launchMode="singleTask"
    android:parentActivityName=".activity.Start"
    android:windowSoftInputMode="stateAlwaysHidden" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".activity.Start" />
    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
<activity
    android:name=".activity.ChatActivity"
    android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
    android:label="@string/activity_label_in_chat"
    android:parentActivityName=".activity.HomeActivity"
    android:windowSoftInputMode="stateHidden"
    tools:ignore="UnusedAttribute" >
    <meta-data
        android:name="android.support.PARENT_ACTIVITY"
        android:value=".activity.HomeActivity" />

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />

        <category android:name="android.intent.category.DEFAULT" />

        <data android:mimeType="vnd.android.cursor.item/vnd.myapp.chat" />
    </intent-filter>
</activity>

建物の通知

final String chatId = cursor.getString(cursor.getColumnIndexOrThrow(MessageColumns.CHAT));
final Intent chat = new Intent(c, ChatActivity.class);
chat.putExtra(ChatActivity.EXTRA_CHAT_ID, chatId);
PendingIntent intent = TaskStackBuilder.create(c).addNextIntentWithParentStack (chat).getPendingIntent (0, PendingIntent.FLAG_UPDATE_CURRENT);
NotificationCompat.Builder builder = new NotificationCompat.Builder (c);
final NotificationManagerCompat nm = NotificationManagerCompat.from (c);
builder
    .setSmallIcon (R.drawable.ic_stat_notification)
    .setContentIntent (intent)
    .setGroup (GROUP_KEY_MYAPP)
    .setGroupSummary (true);
    Notification notification = builder.build ();
    nm.notify(NOTIFICATION_ID, notification);

アクションバーからのホームクリックの処理について

public void onHomeActionDefault (final Activity baseActivity) {
    Keyboard.close (baseActivity);
    Intent upIntent = NavUtils.getParentActivityIntent (baseActivity);
    if (null != upIntent) {
        if (NavUtils.shouldUpRecreateTask (baseActivity, upIntent)) {
            android.support.v4.app.TaskStackBuilder.create (baseActivity)
                                                   .addNextIntentWithParentStack (upIntent)
                                                   .startActivities ();
        } else {
            NavUtils.navigateUpTo (baseActivity, upIntent);
        }
    } else {
        NavUtils.navigateUpFromSameTask (baseActivity);
    }
}

ここに欠けているものはありますか?

コーリーロイ

インテントにフラグを追加し、アプリケーションコンテキストを使用する必要があることがわかりました。マニフェスト.xmlだけで、ターゲットクラス内のJavaでバックスタックを作成する必要はありませんでした。そこで、保留中のインテントを適切かつ一貫して構築するために、この小さなメソッドを構築しました。

public static PendingIntent addBackStack(final Context context, final Intent intent) {
   TaskStackBuilder stackBuilder = TaskStackBuilder.create (context.getApplicationContext ());
   stackBuilder.addNextIntentWithParentStack (intent);
   intent.addFlags (Intent.FLAG_ACTIVITY_NEW_TASK);
   return stackBuilder.getPendingIntent (0,PendingIntent.FLAG_UPDATE_CURRENT);
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

通知からのPendingIntentが受信されていません

分類Dev

Androidフラグメントがバックスタックに追加されていません

分類Dev

通知コールバックが受信されていません

分類Dev

非同期タスクがバックグラウンドで実行されていませんか?

分類Dev

非同期タスクがバックグラウンドで実行されていませんか?

分類Dev

Androidサービスがバックグラウンドで実行されていませんか?

分類Dev

KDEデスクトップに通知の作成を停止させる方法「画面がロックされています」

分類Dev

スタックメモリが解放されていません

分類Dev

要素タイプ「application」に関連付けられた属性「andriod:name」のプレフィックス「andriod」がバインドされていませんか?

分類Dev

coroutineScope内からアクターを作成するとスレッドがブロックされますが、CoroutineScopeの拡張関数として作成された同じアクターはブロックされません

分類Dev

コールバックメソッドからビューが更新されていません

分類Dev

axios.getリクエストからのパラメータは、エクスプレスバックエンドでは定義されていません

分類Dev

シナモンタスクバーは表示されていますが、機能していません(つまり、クリックできません)

分類Dev

ステータスチェックに失敗したCloudWatchアラームが作成されていません

分類Dev

UWPバックグラウンドタスクが実行されていません

分類Dev

インジェクターサービスがコールバックで定義されていません

分類Dev

バックグラウンドタスクがキューに入れられ、実行されていません

分類Dev

データプロシージャクラスターで実行されているjupyterノートブックからGoogleクラウドストレージバケットからファイルを読み取ることができません

分類Dev

WritableServerSelectorによってクラスターからサーバーが選択されていません

分類Dev

MongoDBでカバーされているクエリは、インデックスからのクエリを満たすことができません

分類Dev

Android Firebase:アプリがバックグラウンドの場合、Huawei p8プッシュ通知がシステムに表示されませんか?

分類Dev

WPFコンボボックスがバインドされていません

分類Dev

WPプラグインが表示されます通知:未定義のインデックス:ウィジェット「インスタンス」を作成するときにエラーが定義されていません

分類Dev

バックグラウンドスレッドで更新されたRealmObjectが更新または通知を取得していません

分類Dev

Androidサービスがバックグラウンドで正しく実行されていません

分類Dev

アプリを初期化するかデータを更新するためにエクストラ付きのAndroid通知をクリックする:アプリが以前の通知によって開始されたときは処理されません

分類Dev

navGraphViewModelsによってjava.lang.IllegalArgumentExceptionが作成されます:ID <宛先ID>の宛先がNavControllerのバックスタックにありません

分類Dev

SD / MMCカードがカーネルによって検出されましたが、ブロックデバイスが作成されていません

分類Dev

列挙型が定義されており、インデックスから値を与えていません

Related 関連記事

  1. 1

    通知からのPendingIntentが受信されていません

  2. 2

    Androidフラグメントがバックスタックに追加されていません

  3. 3

    通知コールバックが受信されていません

  4. 4

    非同期タスクがバックグラウンドで実行されていませんか?

  5. 5

    非同期タスクがバックグラウンドで実行されていませんか?

  6. 6

    Androidサービスがバックグラウンドで実行されていませんか?

  7. 7

    KDEデスクトップに通知の作成を停止させる方法「画面がロックされています」

  8. 8

    スタックメモリが解放されていません

  9. 9

    要素タイプ「application」に関連付けられた属性「andriod:name」のプレフィックス「andriod」がバインドされていませんか?

  10. 10

    coroutineScope内からアクターを作成するとスレッドがブロックされますが、CoroutineScopeの拡張関数として作成された同じアクターはブロックされません

  11. 11

    コールバックメソッドからビューが更新されていません

  12. 12

    axios.getリクエストからのパラメータは、エクスプレスバックエンドでは定義されていません

  13. 13

    シナモンタスクバーは表示されていますが、機能していません(つまり、クリックできません)

  14. 14

    ステータスチェックに失敗したCloudWatchアラームが作成されていません

  15. 15

    UWPバックグラウンドタスクが実行されていません

  16. 16

    インジェクターサービスがコールバックで定義されていません

  17. 17

    バックグラウンドタスクがキューに入れられ、実行されていません

  18. 18

    データプロシージャクラスターで実行されているjupyterノートブックからGoogleクラウドストレージバケットからファイルを読み取ることができません

  19. 19

    WritableServerSelectorによってクラスターからサーバーが選択されていません

  20. 20

    MongoDBでカバーされているクエリは、インデックスからのクエリを満たすことができません

  21. 21

    Android Firebase:アプリがバックグラウンドの場合、Huawei p8プッシュ通知がシステムに表示されませんか?

  22. 22

    WPFコンボボックスがバインドされていません

  23. 23

    WPプラグインが表示されます通知:未定義のインデックス:ウィジェット「インスタンス」を作成するときにエラーが定義されていません

  24. 24

    バックグラウンドスレッドで更新されたRealmObjectが更新または通知を取得していません

  25. 25

    Androidサービスがバックグラウンドで正しく実行されていません

  26. 26

    アプリを初期化するかデータを更新するためにエクストラ付きのAndroid通知をクリックする:アプリが以前の通知によって開始されたときは処理されません

  27. 27

    navGraphViewModelsによってjava.lang.IllegalArgumentExceptionが作成されます:ID <宛先ID>の宛先がNavControllerのバックスタックにありません

  28. 28

    SD / MMCカードがカーネルによって検出されましたが、ブロックデバイスが作成されていません

  29. 29

    列挙型が定義されており、インデックスから値を与えていません

ホットタグ

アーカイブ