Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android AlarmManager不会调用广播接收器_Java_Android_Alarmmanager - Fatal编程技术网

Java Android AlarmManager不会调用广播接收器

Java 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

好吧,我试了我能找到的一切,但都没用。这是我的密码。有人能告诉我为什么它不给听筒打电话吗

AndroidManifest.xml

...
<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);