Java AlarmManager不工作无法放置清单部分
物价指数。我正在制作一个AlarmManager,以便在1分钟内(在后台)重复操作,但它不起作用,有人能帮我吗? 我的主要活动Java AlarmManager不工作无法放置清单部分,java,android,alarmmanager,Java,Android,Alarmmanager,物价指数。我正在制作一个AlarmManager,以便在1分钟内(在后台)重复操作,但它不起作用,有人能帮我吗? 我的主要活动 int repeatTime = 60; //Repeat alarm time in seconds AlarmManager processTimer = (AlarmManager)getSystemService(ALARM_SERVICE); Intent intent = new Intent(this, onB
int repeatTime = 60; //Repeat alarm time in seconds
AlarmManager processTimer = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, onBackround.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
//Repeat alarm every second
processTimer.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),repeatTime*1000, pendingIntent);`
我的BROADCOAST收到:
package com.example.hatzalahrescatista;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class onBackround extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Do something every 1 MINUTE
}
}`
清单(我无法输入此ALARMMANAGER的权限)示例:
()使我犯了一个错误,如“未解决的类…”
您需要在清单文件中声明接收方。 将其写入清单文件
<receiver
android:enabled="true"
android:name=".onBackround "
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
据报道,AlarmManager是不精确的
这些警报在空闲时会显著影响设备的电源使用(从而导致调度警报的应用程序严重的电池故障),因此应谨慎使用。为了减少滥用,对特定应用程序发出警报的频率有限制。在正常系统运行情况下,不会超过大约每分钟发出一次警报(此时发出所有此类待处理警报);在低功率怠速模式下,此持续时间可能会明显更长,例如15分钟
因此,如果您希望每分钟执行一次作业,我建议使用
```
<receiver
android:enabled="true"
android:name=".onBackround "
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
package com.example.hatzalahrescatista;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class onBackround extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
int repeatTime = 60; //Repeat alarm time in seconds
AlarmManager processTimer = (AlarmManager)getSystemService(ALARM_SERVICE);
Intent intent = new Intent(this, YOUR_SERVICE_CLASS_NAME.class); //create a service class and call here
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
//Repeat alarm every second
processTimer.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(),repeatTime*1000, pendingIntent); }
}`