我是這個整個Android環境的新手,我通常會有一些疑問,也許你可以考慮非常基本的知識並且有點愚蠢。我會盡我所能解釋我有的疑問,爲什麼我要讓我明白。無論類是否應用程序上下文總是相同?
我正在做一個應用程序,您可以設置通知來提醒您所需的學者課程。我已經完成了擴展BroadcastReceiver的類,以便它可以在設備啓動後重置所有警報。我有,我保持有關報警信息的數據庫:類,它必須被配置的時間,等我找回所有報警,並將它們設置爲alarmManager這樣:
intent = new Intent(ctxt.getApplicationContext(), Notificacion.class);
intent.putExtra("TAG", tag);
intent.putExtra("SUBJECT", cursor2.getString(0));
intent.putExtra("AULA", cursor2.getString(1));
displayIntent = PendingIntent.getBroadcast(ctxt, Integer.parseInt(tag), intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY*7, displayIntent);
嗯,我想這應該很好,直到這裏。問題是,當您使用的應用程序,你要設置的通知,你是從類「Schedule.class」做這樣的意圖將有此背景下:
Intent intent = new Intent(getApplicationContext(), Notification.class);
PendingIntent pend = PendingIntent.getBroadcast(this, Integer.parseInt(tag), intent, PendingIntent.FLAG_UPDATE_CURRENT);
在應用中,你可以刪除一個鬧鐘,你必須調用alarmManager.cancel(掛起)才能做到這一點。所以我的疑問是它是否能夠取消它。
如果上下文不同,它將無法找到匹配的待定意圖,因爲它是從我在我的擴展BroadCastReceiver(ctxt)中得到的上下文中設置的,並且警報是使用上下文獲得的來自Schedule.class。
那麼......應用程序上下文總是一樣嗎?我知道上下文是爲了向其他類提供有關正在發生的事情的信息而設置的,但我不確定Intent過濾器是否會區分給定上下文的位置。
預先感謝您!
這就是我的想法。但我不確定上下文是否在數據中,因此它會過濾爲不同的意圖。無論如何,我會嘗試做一些測試,看看它是否正常工作,我會在這裏更新。 謝謝! –
不,在Intent類中的mData變量是一個URI,所以這不應該是一個問題。 – ajpolt
好吧,一切都清楚了。非常感謝你。它工作得很好= D –