だからここで取り引きします。メソッド内のパラメータとしてアクティビティを渡すことができません
私はユーザー定義のクラスを作成しました。通知オブジェクトを返すメソッドが含まれています。今私はこの方法を少し柔軟にしたい。通知バーでユーザーが通知をクリックしたときに開くアクティビティを渡します。ここでは(このクラスのユーザーに追加の制御を与えるため
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つとして活動を使用してみましたが、私は「Activity2」のように、このメソッドを呼び出すか、「Activity2.this」しながら、別のアクティビティを渡してみました時はいつでも、それは言って私にエラーを与える:
No enclosing instance of the type Activity2 is accessible in scope
がいずれかがありますこれを回避するか、アクティビティをパラメータとして渡すことができます。あるいは、私はNotificationIDに基づいてそれらを区別する必要があります。
この点に関する助けや上記のコードの修正は大歓迎です。 ( "コンテキスト"はクラスレベルの変数なので、心配しないでください。このコードはうまくいきます)。
私もクラスでやってみましたが、同じ気持ちでした。しかし、インテントは素晴らしい考えです。 Gregに感謝します。回答が受け入れられました:D – drulabs