2

我有一个为果冻豆开发的应用程序,我在其中使用警报管理器安排将来要执行的事件。只要应用程序在前台或后台运行,计划的事件就会按预期执行。但是一旦我强制关闭任务管理器下的应用程序,我就不再能够接收来自警报管理器的广播。

正如各种帖子和博客所建议的那样,我尝试使用 Intent.Flag_Include_Stopped_Packages。但这没有用。在意图中包含此标志仅适用于 sendBroadcast(intent)。但是在使用挂起意图的警报管理器的情况下,它不起作用。

我安排闹钟的代码

Intent intent = new Intent("com.dummy.intent");  
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(),dummyId, intent,                          PendingIntent.FLAG_CANCEL_CURRENT);

AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
alarm.set(AlarmManager.RTC_WAKEUP, scheduledAlarm.getTimeInMillis(), pi);

我的主菜

<receiver android:name="com.example.androidScheduling.alarmReceiver"                         
          android:enabled="true"
          android:exported="true" 
          android:process=":remote">

       <intent-filter>
           <action android:name="com.dummy.intent"></action>
       </intent-filter>

</receiver>

有人可以帮我吗?我什至尝试android:process = ":remote"在清单中包含接收器。但即便如此也无济于事。

4

1 回答 1

1

我认为您在 manifest 和 programmatically 中没有正确拼写意图的操作名称。

In pro-grammatically

Intent intent = new Intent("com.dummy.intent"); 

Manifest file-

<intent-filter>
     <action android:name="com.custom.intent"></action>
</intent-filter>

The action name to intent and declared in manifest must require same.

希望这对你有帮助

于 2013-08-02T14:00:57.577 回答