Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.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 我的经理有时不开枪_Java_Android_Alarmmanager - Fatal编程技术网

Java 我的经理有时不开枪

Java 我的经理有时不开枪,java,android,alarmmanager,Java,Android,Alarmmanager,我的经理有时不开枪 主要活动: Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(System.currentTimeMillis()); cal.set(Calendar.HOUR_OF_DAY, tp1.getCurrentHour()); cal.set(Calendar.MINUTE, tp1.getCurrentMinute()); cal.set(Calendar.SECOND, 0); long timeDif

我的经理有时不开枪

主要活动:

Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
cal.set(Calendar.HOUR_OF_DAY, tp1.getCurrentHour());
cal.set(Calendar.MINUTE, tp1.getCurrentMinute());
cal.set(Calendar.SECOND, 0);

long timeDif = cal.getTimeInMillis() - System.currentTimeMillis();
long horaFinal = System.currentTimeMillis() + AlarmManager.INTERVAL_DAY + timeDif;
long result = (cal.getTimeInMillis() - System.currentTimeMillis()) / 1000;
long results = (horaFinal- System.currentTimeMillis())/1000;
long alarma;

if(result >= 0 && result < 60){
     alarma = cal.getTimeInMillis();
}else{
    alarma = horaFinal;
}

Intent intent = new Intent(this, Temporizador.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
        this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, alarma, pendingIntent);


    if (result >= 0 && result < 60) {
        Toast.makeText(this, "La alarma sonará en menos de un minuto.",
                Toast.LENGTH_LONG).show();
    } else if (result < 3600 & result >= 60) {
        result = result / 60;
        Toast.makeText(this,
                "La alarma sonará en " + result + " minutos.",
                Toast.LENGTH_LONG).show();
    } else if (result >= 3600) {
        int resultado = (int) (result / 3600);
        long minutos = (result % 3600) / 60;
        Toast.makeText(
                this,
                "La alarma sonará en " + resultado + " horas y "
                        + minutos + " minutos.", Toast.LENGTH_LONG)
                .show();
    }else{
       if(results >= 0 && results < 60){
           Toast.makeText(this, "La alarma sonará en menos de un minuto.",
                Toast.LENGTH_LONG).show();
       } else if (results < 3600 & results >= 60) {
        results /= 60;
        Toast.makeText(this,
                "La alarma sonará en " + results + " minutos.",
                Toast.LENGTH_LONG).show();
       }else if (results >= 3600) {
        int resultado = (int) (results / 3600);
        long minutos = (results % 3600) / 60;
        Toast.makeText(
                this,
                "La alarma sonará en " + resultado + " horas y "
                        + minutos + " minutos.", Toast.LENGTH_LONG)
                .show();  
       }
    }
最后,在我的清单上



通常可以正常工作,但如果我的应用程序在后台运行失败,或者手机被长时间锁定,你可以这样尝试

SystemClock.elapsedRealtime()而不是System.currentTimeMillis()

也看到了这个区别

已用\u实时\u唤醒:从启动时起触发警报,然后
RTC_唤醒:根据时钟时间触发闹钟

OK,我知道什么时候不工作。。如果我的手机进入睡眠模式,我的应用程序将无法工作!我能做什么?你能解决这个问题吗?我面临着类似的问题,当设备设置为空闲(不充电,屏幕关闭)时,我的报警管理器不工作。这种情况有时仅在某些设备上发生。非常感谢您的帮助。。。
package com.example.alarmarockfm;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class Temporizador extends BroadcastReceiver {
    @Override

    public void onReceive(Context context, Intent intent) {
        /*Intent i = new Intent(this, EmisoraRadio.class );
        startActivity(i);*/     
        Intent i = new Intent(context, EmisoraRadio.class); 
        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(i);

    }

}