通知とイベントを通じてアクティビティを実行しようとしていますonCreate
"リダイレクト"したいと思います。これには、Intent
クラスの情報を考えてください。重要な特徴は、通知を生成するクラスがサービスを通じて実行されることです。私は、コンテキストandroid.app.Application
によって提供されるgetApplicationContext
メソッドから取得します。私がメソッドgetExtras()
を呼び出すときはいつでも、null
を返す。私は間違って何をしていますか?Intent.getExtras()は常にnullを返します
public class OXAppUpdateHandler {
private void addNotification(Context context, int iconID,
CharSequence tickerText, CharSequence title, CharSequence content) {
CharSequence notificationTicket = tickerText;
CharSequence notificationTitle = title;
CharSequence notificationContent = content;
long when = System.currentTimeMillis();
Intent intent = new Intent(context, MainActivity_.class);
intent.setFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.putExtra(OPEN_UPDATE_ACTIVITY_KEY, 1);
PendingIntent pendingIntent =
PendingIntent.getActivity(context, 0, intent, 0);
NotificationManager notificationManager =
(NotificationManager) context.getSystemService(
Context.NOTIFICATION_SERVICE);
Notification notification =
new Notification(iconID, notificationTicket, when);
notification.setLatestEventInfo(context, notificationTitle,
notificationContent, pendingIntent);
notificationManager.notify(NOTIFICATION_ID, notification);
}
public static boolean isUpdateStart(Intent intent) {
Bundle bundle = intent.getExtras();
boolean result = bundle != null &&
bundle.containsKey(OPEN_UPDATE_ACTIVITY_KEY);
if (result) {
bundle.remove(OPEN_UPDATE_ACTIVITY_KEY);
}
return result;
}
}
@EActivity(R.layout.activity_main)
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (OXAppUpdateHandler.isUpdateStart(getIntent())) {
startActivity(new Intent(this, UpdateActivity_.class));
}
}
}
エクストラをインテントに入れるコードを投稿できますか? –
通知をブロードキャストにするか、その他の場合はベースコンテキストを取得しようとします。 –
@ChangdeoJadhavメソッドOXAppUpdateHandler。コードintent.putExtra(OPEN_UPDATE_ACTIVITY_KEY、1)でaddNotification(...)を実行します。 – adrianosepe