www說(shuō)
2021-06-08 17:47:10
我正在編寫(xiě)一個(gè)應(yīng)用程序,一旦它到達(dá)某個(gè)日期/時(shí)間就會(huì)觸發(fā)一個(gè)特定的方法。但是,我的廣播接收器沒(méi)有啟動(dòng)……我可以看到警報(bào)已設(shè)置。我在活動(dòng)中的方法: private void setAlarm(Date date){ Intent activate = new Intent(this, Alarm.class); AlarmManager alarms ; Calendar cal = new GregorianCalendar(); cal.setTimeInMillis(date.getTime()); PendingIntent alarmIntent = PendingIntent.getBroadcast(this, 0, activate, 0); alarms = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE); Log.d("ALARM","Setting alarm"); alarms.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), alarmIntent); Log.d("ALARM","Setting time "+cal.getTimeInMillis()); }我的廣播接收器:public class Alarm extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Log.d("ALARM", "RING RING"); }}我在<application>標(biāo)簽中的清單:<receiver android:name=".Alarm" android:process=":remote" > <intent-filter> <action android:name="com.package.feature.subpackage.arrangealarm.ALARM_ACTION"/> </intent-filter> </receiver>有誰(shuí)知道為什么這不開(kāi)火?
1 回答

MM們
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
您的代碼似乎沒(méi)有任何問(wèn)題(我復(fù)制了該代碼段并讓 Android Studio 生成了一個(gè) BroadcastReceiver,我android:process=":remote"
像您一樣為其設(shè)置了廣播接收器)。
當(dāng)我運(yùn)行應(yīng)用程序時(shí),會(huì)BroadcastReceiver
觸發(fā),但是當(dāng)我在 Logcat 設(shè)置(右側(cè))中選擇“無(wú)過(guò)濾器”時(shí),我只能看到相應(yīng)的 Logcat 條目,而不是當(dāng)我選擇“僅顯示選定的應(yīng)用程序”時(shí)。
發(fā)生這種情況是因?yàn)槟褂?code>android:process=":remote". BroadcastReceiver 將在“主”應(yīng)用程序進(jìn)程之外的另一個(gè)進(jìn)程中運(yùn)行,因此“RING RING”將出現(xiàn)在另一個(gè)進(jìn)程 ID 下。
添加回答
舉報(bào)
0/150
提交
取消