3

Serviceを作成するAndroid ライブラリがありNotificationます。私が理解していることから、 ( ) を設定するNotification必要があります。そうしないと、ランタイム例外がスローされます。contentIntentPendingIntent

問題は、ユーザーがこれをそのまま使用しServiceたり、拡張したりしてPendingIntentNotification. ただし、これを行わないことを選択しPendingIntentた場合は、例外がないように を何かに設定する必要があります。PendingIntentフィルインとして機能するダミーを作成する方法はありますか?

createNotificationメソッドのコードの例を次に示します。

PendingIntent p;
if(getPendingIntentCallback != null) {
    p = getPendingIntentCallback.getPendingIntent();
}
else {
    p = ?;
}
notification.contentIntent = p;
4

2 に答える 2

7
PendingIntent pi=PendingIntent.getBroadcast(this, 0, new Intent("DoNothing"), 0);

これは私にとってはうまくいきました。「DoNothing」アクションのブロードキャストを開始します。「DoNothing」の放送を聞いて、それに反応して何かをする人がいないことを願っています。しかし、必要に応じて、よりエキゾチックなものを構築できます。注: これは一時的なプレースホルダーとして使用しています。アプリケーション開発を進めるにつれて、ユーザーにとってより便利なものに置き換えます。

于 2012-11-08T06:50:55.943 に答える
0

通知には、何らかのアクションが関連付けられている必要があります。アプリのユーザーが通知をクリックしたときに何をすべきかをアンドロイドに伝える必要があります。contentIntent が定義されていない場合にライブラリを失敗させると、ライブラリのユーザーは非常に重要なステップを逃したことを知ることができます。

通知を作成する前に、保留中のインテントを確認できます。

if(getPendingIntentCallback != null) {
    p = getPendingIntentCallback.getPendingIntent();
    // create a notification

}
else {
    //don't create a notification
    Log.d("Notification", "Your notification was not created because no pending intent was found");
}

または、質問に答えるために、ホーム画面に移動するなどの任意のアクションを実行するダミーの保留中のインテントを作成できます。

このスレッドを参照してください: Android でプログラムによってホーム画面を起動する方法

于 2012-10-25T02:09:16.573 に答える