これが取引です。
ユーザー定義のクラスを作成しました。通知オブジェクトを返すメソッドが含まれています。今、私はこの方法を少し柔軟にしたいと思っています。ユーザーが通知バーの通知をクリックしたときに開くアクティビティを渡すのと同じです。これが方法です
public Notification getUserNotificationObject(String status, String message, String tickerText, boolean isOngoingEvent){
Notification notification = new Notification(R.drawable.image, tickerText, System.currentTimeMillis());
long vibInterval = (long) context.getResources().getInteger(R.integer.vibrateInterval);
notification.vibrate = new long[] {vibInterval, vibInterval, vibInterval, vibInterval, vibInterval};
Intent notifyIntent = new Intent(context, HomeScreen.class);
CharSequence contentTitle = "Title";
CharSequence contentText = status + "-" + message;
notification.setLatestEventInfo(context, contentTitle, contentText, PendingIntent.getActivity(context, 0, notifyIntent, PendingIntent.FLAG_CANCEL_CURRENT));
notification.ledARGB = Color.argb(100, 0, 254, 0);
notification.ledOnMS = 500;
notification.ledOffMS = 500;
notification.flags |= Notification.FLAG_SHOW_LIGHTS;
if(isOngoingEvent){
notification.flags |= Notification.FLAG_ONGOING_EVENT;
}
return notification;
}
これで、アクティビティをパラメータとして渡すのではなく、渡すことができるようにしたい
HomeScreen.class
上記のインテント定義で使用されます(通知がクリックされたときに開くアクティビティを選択するために、このクラスのユーザー(または他の開発者)に追加の制御を与えるため)。このメソッドのパラメーターの1つとしてActivityを使用しようとしましたが、「Activity2」や「Activity2.this」などのこのメソッドを呼び出しているときに別のアクティビティを渡そうとすると、次のようなエラーが発生します。
No enclosing instance of the type Activity2 is accessible in scope
これまたはアクティビティをパラメータとして渡す方法の回避策はありますか?または、NotificationIDに基づいてそれらを区別する必要があります。
この点に関するヘルプや上記のコードの修正は大歓迎です。(「コンテキスト」はクラスレベルの変数なので、心配する必要はありません。このコードは正常に機能しています)。