Java Android AlarmManager不会调用广播接收器
好吧,我试了我能找到的一切,但都没用。这是我的密码。有人能告诉我为什么它不给听筒打电话吗 AndroidManifest.xmlJava Android AlarmManager不会调用广播接收器,java,android,alarmmanager,Java,Android,Alarmmanager,好吧,我试了我能找到的一切,但都没用。这是我的密码。有人能告诉我为什么它不给听筒打电话吗 AndroidManifest.xml ... <receiver android:name=".AlarmReciever" /> ... DeviceMonitor.java public class DeviceMonitor extends Service { public int onStartCommand(Intent intent, int flags, int st
...
<receiver android:name=".AlarmReciever" />
...
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");
}
}
也许更多的描述可能会有用,例如,您的代码中是否没有日志消息,或者它引发异常或 但是我有一个工作代码,它实现了与您在问题中展示的相同的方法。不幸的是,您还没有发布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>
这将在收到新SMS时调用AtlasIncomingSMSReceiver类。我似乎通过在xml文档中使用完全限定的路径名解决了这个问题
<receiver
android:name="com.realityi.measy.mdm.logs.AlarmReciever"
android:enabled="true"
android:exported="true">
</receiver>
这迫使发送了boradcast
真希望这希望有人。我对Android开发还不熟悉,这让我很痛苦。我想如果你在Android mainfest文件中使用
AlarmReceiver
而不是。AlarmReceiver
,它会工作。onStart方法会运行。它将所有内容都记录到日志文件中,除了广播接收器onreceive方法。当您定义
时,您会告诉应用程序要调用哪个类,但没有告诉应用程序何时调用。您应该制作一个childnode(如上所述),并告诉您要听什么。例如:
在您定义了什么以及何时可以这样调用它之后:Intent i=newintent(“cica”);发送广播(一)
当然,您可以使用预定义的事件来收听,例如:
<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);