Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Android 安卓上的AlarmManager赢得了';不要开枪_Android_Android Alarms - Fatal编程技术网

Android 安卓上的AlarmManager赢得了';不要开枪

Android 安卓上的AlarmManager赢得了';不要开枪,android,android-alarms,Android,Android Alarms,我试图让Android在用户指定的某个时间发出警报,以检查用户是否已发布到该服务。然而,安卓不会放火 AndroidManifest.xml: <receiver android:name="me.kennydude.dailybooth.NoBoothNotify.AlarmReciever" /> <service android:name="me.kennydude.dailybooth.NoBoothNotify.AlarmService"> </ser

我试图让Android在用户指定的某个时间发出警报,以检查用户是否已发布到该服务。然而,安卓不会放火

AndroidManifest.xml:

<receiver
 android:name="me.kennydude.dailybooth.NoBoothNotify.AlarmReciever" />
<service
 android:name="me.kennydude.dailybooth.NoBoothNotify.AlarmService">
</service>
正如你所看到的,我正试图让它工作一个(因此注释掉的部分),但它仍然不能工作

有人能帮忙吗

谢谢


我好像已经把这个修好了。由于某些原因,如果接收器是一个子类,Android不喜欢发出警报

为了修复并保持原始性,我将其全部移动到了一个新的名称空间中,并且工作正常


Joe

只是在黑暗中拍摄,但您确实意识到,当您设置警报时,它预期的时间是UTC。如果您的时区不是UTC(GMT),您需要进行补偿。好的,我已经更改了代码,现在它抛出了UTC/GMT的时间。但是,它仍然没有触发
public static void settingsChanged(){
    Context cntxt = DailyboothApplication.getInstance();
    String value = DailyboothShared.getPersonalSetting("noBoothNotify", "no");
    AlarmManager alm = (AlarmManager) cntxt.getSystemService(Context.ALARM_SERVICE);

    Intent piI = new Intent(cntxt, AlarmReciever.class);
    if(Build.VERSION.SDK_INT >= 5){
        SharedPreferences prefs = DailyboothShared.getPrefs();
        piI.putExtra("account", prefs.getString("current_account", null));
    }
    PendingIntent pi = PendingIntent.getBroadcast(cntxt, 348347873, piI, PendingIntent.FLAG_UPDATE_CURRENT);

    if(value.equals("no")){
        alm.cancel(pi);
    } else{
        String[] values = value.split(":");
        Calendar cal = Calendar.getInstance();
        Log.d("s", value);
        // cal.setTimeInMillis(System.currentTimeMillis());
        cal.clear(Calendar.HOUR_OF_DAY);
        cal.clear(Calendar.SECOND);
        cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(values[0]));
        cal.set(Calendar.MINUTE, Integer.parseInt(values[1]));
        cal.setTimeZone(TimeZone.getTimeZone("GMT"));
        Log.d("s", "setting for " + cal.getTimeInMillis());
        Log.d("s", "HRD: " + cal.getTime().toGMTString());
        alm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
                /*AlarmManager.INTERVAL_DAY,*/ pi);
    }
}