2016-01-09 2 views
7

AlarmManager.AlarmClockInfoを使用してアラームを設定しようとしています。AlarmManager.AlarmClockInfoのPendingIntentはどのように機能しますか?

これコンストラクタは時間がかかり且つとしてドキュメントに記載されてPendingIntent

目覚まし時計の詳細を表示または編集するために使用することができる意図を。アラームがオフ

行くとき、私はPendingIntentの使用を理解し実行するために

処置:

、その後setAlarmClock()はまた、ドキュメントに記述されている保留中の意図を取り込んでしかし、setAlarmClock()によって、PendingIntentはどのように使用されますか?また、それを使って目覚まし時計の詳細を編集するにはどうすればよいですか?

答えて

11

ただし、AlarmClockInfoで使用されるPendingIntentはどのように使用され、アラームクロックの詳細を編集するにはどのように使用しますか?

setAlarmClock()との最大の問題は、それが ユーザーに見えるということである:

  • ユーザーがその状態で目覚まし時計のアイコンが表示されますthis bookから自分自身を引用

バーのように、 の場合、デバイスに内蔵されている目覚まし時計アプリでアラームを設定しました。

  • ユーザーは、彼らが完全に開いたスライド を呼び出します通知シェードでアラーム時刻をタップ その通知シェード

  • Notification Shade, Showing Upcoming Alarm

    • ときにアラームの時間が表示されますAlarmClockInfoオブジェクトに入れたPendingIntent
    このコードは与えられたので、

    、...:

    static void scheduleAlarms(Context ctxt) { 
        AlarmManager mgr= 
         (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE); 
        Intent i=new Intent(ctxt, PollReceiver.class); 
        PendingIntent pi=PendingIntent.getBroadcast(ctxt, 0, i, 0); 
        Intent i2=new Intent(ctxt, EventDemoActivity.class); 
        PendingIntent pi2=PendingIntent.getActivity(ctxt, 0, i2, 0); 
    
        AlarmManager.AlarmClockInfo ac= 
         new AlarmManager.AlarmClockInfo(System.currentTimeMillis()+PERIOD, 
         pi2); 
    
        mgr.setAlarmClock(ac, pi); 
        } 
    

    ユーザーは通知シェードの時間をタップしたときに、EventDemoActivityが表示されます...

    this sample projectから)。このアイデアは、ユーザがこのアラームをキャンセルまたは再スケジュールすることができるアクティビティをここに提供する必要があるということです。

    +0

    *このアイデアは、ユーザがこのアラームをキャンセルまたは再スケジュールすることを許可するアクティビティをここに提供する必要があるということです。*これは、2つのアクション、つまり1つは閉じ、もう1つはスヌーズの2つのアクションで 'Notification' –

    +0

    @LittleChild:確かに、ユーザーにアラーム(「通知」とアラーム提供のアクティビティ)を管理する2つの方法とステータスバーの2つのアイコン(「通知」とシステムからの2つのアイコンアラームのため)。 – CommonsWare

    +0

    @Ankhwatcher:それは素晴らしい質問です...私は分かりません。それ以外の場合は、 'PendingIntent'を取り消すことができますが、' AlarmClockInfo'全体を取り消すことができるようになるときれいになります。どうすればいいのか分かりません。スタックオーバーフローに関する別の質問をしてみるかもしれません。 – CommonsWare

    関連する問題