Parse API を介してプッシュ通知からテキストを受信し、それを通知オブジェクトにパッケージ化するメソッドがあります。かなり標準的なもの。私の問題は、BigTextStyle を使用して通知をリストに表示しようとしているのですが、これを拒否し、1 行のテキストしか表示せず、2 本指のジェスチャーで展開されないことです。
ただし、通知をタップしてアプリを開き、通知リストに戻ると、BigTextStyle に表示され、ジェスチャーに反応します。したがって、何らかの方法で通知をタップすると通知がアクティブになり、BigTextStyle コードが起動できるようになると思います。
通知をタップするとアプリが開くのは気に入っていますが、メッセージの全文を表示するために、ユーザーにアプリを開いてからもう一度閉じてもらう必要はありません。通知を最初から BigTextStyle 形式で表示する方法、または最初のクリックで通知を「アクティブ化」してメッセージ テキスト全体を表示し、2 回目のクリックで開くようにする方法はありますかアプリ?どんな助けでも大歓迎です。
通知メソッドからの私のコードは次のとおりです。
public void receiveNotification() {
NotificationCompat.BigTextStyle bts = new NotificationCompat.BigTextStyle();
bts.bigText(SplashActivity.globalDataString);
bts.setSummaryText("Tap to open app, swipe to dismiss message");
NotificationCompat.Builder m = new NotificationCompat.Builder(this);
m.setContentTitle("New Push Notification")
.setContentText(SplashActivity.globalDataString)
.setSmallIcon(R.drawable.app_icon)
.setStyle(bts)
.build();
Intent openApp = new Intent(this, MenuActivity.class);
// This ensures that navigating backward from the Activity leads out of
// the application to the Home screen.
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
// Adds the back stack for the Intent (but not the Intent itself)
stackBuilder.addParentStack(MenuActivity.class);
// Adds the Intent that starts the Activity to the top of the stack
stackBuilder.addNextIntent(openApp);
PendingIntent resultPendingIntent =
stackBuilder.getPendingIntent(
0,
PendingIntent.FLAG_UPDATE_CURRENT
);
m.setContentIntent(resultPendingIntent);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// mId allows you to update the notification later on.
mNotificationManager.notify(pushMessageID, m.build());
pushMessageID++;
//reset notification
flag1 = false;
}
編集:私の問題は、 receiveNotification() メソッドを呼び出す場所にあると思います。現在、アプリの開始アクティビティの onCreate() メソッドにそれがありますが、振り返ってみるとあまり意味がありません。それを自分の broadcastReceiver クラスに入れる必要がありますか、それとももっと良い場所に置くべきでしょうか?