好的,首先,我在这里坐了 4 个小时试图解决这个问题,但无济于事。
我正在使用 PendingIntent 执行广播,但 PendingIntent 不会触发。
这是我清单中的接收者声明:
<receiver android:process=":remote" android:name=".AlarmReceiver"/>
在AlarmReceiver.java
:
@Override
public void onReceive(Context context, Intent intent) {
Log.i(MainActivity.TAG, "FIRED!");
}
在AlarmService.java
:
@Override
public void onCreate() {
Log.i(MainActivity.TAG, "Service starting!");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, new Intent(this, AlarmReceiver.class), 0);
try {
pendingIntent.send();
} catch (PendingIntent.CanceledException e) {
Log.e(MainActivity.TAG, "FAIL!", e);
}
}
在我的 logcat 中,我得到Service starting!
但我没有得到FIRED!
or FAIL!
。代码看起来很简单,但它就是行不通!这段代码有什么不工作的原因吗?
PS 删除android:process
使其工作,但我要求广播在单独的进程中运行。