的AndroidManifest.xml
...
<receiver android:name=".AlarmReciever" />
...
AlarmReciever.java
public class AlarmReciever extends BroadcastReceiver
{
private static final Logger LOGGER = Logger.getLogger(LogService.class);
@Override
public void onReceive(Context context, Intent intent)
{
LOGGER.debug("BroadcastReceiver, in onReceive:");
}
}
DeviceMonitor.java
public class DeviceMonitor extends Service
{
public int onStartCommand(Intent intent, int flags, int startld)
{
LOGGER.debug("alarmmanger settting from on start");
AlarmManager alarmMgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent I = new Intent(this, AlarmReciever.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, I, 0);
Calendar time = Calendar.getInstance();
time.setTimeInMillis(System.currentTimeMillis());
time.add(Calendar.SECOND, 5);
alarmMgr.set(AlarmManager.RTC_WAKEUP, time.getTimeInMillis(), pendingIntent);
LOGGER.debug("alarmmanger set from on start");
}
}
答案 0 :(得分:0)
也许更多的描述可能有用,例如你没有从你的代码中获取日志消息,或者它抛出异常或...
但是我有一个工作代码,它实现了与您在问题中显示的相同的方法。不幸的是,你没有发布AndroidManifest.xml的所有相关部分,但我有这个,也许它会有所帮助。
<receiver
android:name="hu.fnf.devel.atlas.AtlasIncomingSMSReceiver"
android:enabled="true"
android:exported="true"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.provider.Telephony.SMS_RECEIVED" >
</action>
</intent-filter>
</receiver>
当收到新短信时,这会调用AtlasIncomingSMSReceiver类。
答案 1 :(得分:0)
我似乎通过使用xml文档中的完全限定路径名来解决问题
<receiver
android:name="com.realityi.measy.mdm.logs.AlarmReciever"
android:enabled="true"
android:exported="true">
</receiver>
我可以使用
对其进行故障排除Intent i = new Intent();
i.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
sendBroadcast(i);
强制发送boradcast
真的希望有人希望这个。我是Android开发的新手,这让我很难过。
答案 2 :(得分:0)
我认为如果你在android清单文件中使用AlarmReceiver
而不是.AlarmReceiver
,它将会起作用。