notification からのインテント

複数アプリの起動状態ではユーザからは分かりにくいので
notificationからの起動を。

流れ

  1. バーにアイコンとテキストを表示する。
  2. バーをスライドさせてその中のそれをタップさせて、インテント起動。
  3. インテント内の処理が終わったらまた表示させる。(表示されてるビューはなし。)

表示させる

manager = (NotificationManager) getSystemService(Content.NOTIFICATION_SERVICE);

private void sendNotification() {
    Notification n = new Notification();
    n.icon = R.drawable.icon;
    n.tickerText = "こんにちわ";
    n.setLatestEventInfo(getApplicationContext(),
                         "タイトル", "説明", pendingIntent());
    manager.notify(0, n);
}

起動

private PendingIntent pendingIntent() {
    Intent intent = new Intent(getApplicationContext(),
                               ThisActivity.class);
    PendingIntent pi = PendingIntent.getActivity(this, 0, intent, 0);
    return pi;
}

キャンセル

private void cancelNotification() {
    manager.cancel(0);
}