11

MainActivity を 3 つの方法で作成できるという問題があります。1) 標準起動アプリ 2) サービスから 3) 通知クリックから。通知クリックからいつ開始されるかを確認するにはどうすればよいですか?

通知コード:

private void createNotification()
{
    Log.d("service createNotification",MainActivity.TAG);
    Context context = getApplicationContext();
    Intent notificationIntent = new Intent(this,MainActivity.class);
    intent.putExtra(AppNames.IS_NOTIFICATION_INTENT,true);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
            notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);

    NotificationCompat.Builder builder = new NotificationCompat.Builder(context)
            .setContentTitle(this.getString(R.string.notification_title))
            .setContentText(this.getString(R.string.notification_text))             
            .setContentIntent(pendingIntent)             
            .setSmallIcon(R.drawable.ic_launcher);

    getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(AppNames.APP_NOTIFICATION, builder.getNotification());
}
4

1 に答える 1

8

追加

intent.putExtra("started_from","notification");

通知からインテントを開始するコードに、他の startActivity 呼び出しにも同じことが値を変更するだけで、アクティビティ内で

String startedFrom = getIntent().getStringExtra("started_from");

詳細については、次の質問を参照してください: Android のインテントから追加のデータを取得するにはどうすればよいですか?

于 2013-09-01T18:17:57.040 に答える