gpt4 book ai didi

android 启动或重启

转载 作者:行者123 更新时间:2023-11-30 00:12:41 25 4
gpt4 key购买 nike

嗨,我有一个闹钟管理器,用户可以设置闹钟,我将其保存到数据库中,以便在手机重新启动或启动时使用。到目前为止,我写了这篇文章,但它不起作用

public class RestartAlarmsReceiver extends BroadcastReceiver {
private static final String TAG = "alarm";
AlarmManager alarmManager;
Intent mintent;
PendingIntent pendingIntent;
AlarmDbHelper dbHelper;
long time;
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")|| intent.getAction().
equals("android.intent.action.REBOOT")) {

dbHelper = new AlarmDbHelper(context);
List<ChildTour> alarms =dbHelper.getAlarms();


for (int i =0;i<2;i++){
alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
mintent = new Intent(context,AlarmReceiver.class);
ChildTour Child = alarms.get(i);
mintent.putExtra("name",Child.getTime());
mintent.putExtra("tourId",Child.getTourId()+"");
pendingIntent = PendingIntent.getBroadcast(context,Child.getTourId(),mintent,0);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, Child.getHour());
calendar.set(Calendar.MINUTE, Child.getMin());

time=(calendar.getTimeInMillis()-(calendar.getTimeInMillis()%60000));
if(System.currentTimeMillis()>time)
{
if (calendar.AM_PM == 0)
time = time + (1000*60*60*12);
else
time = time + (1000*60*60*24);
}
alarmManager.set(AlarmManager.RTC_WAKEUP,time, pendingIntent);
Log.i("alarm","Alarm set With Id : "+Child.getTourId() +"Hour: " +Child.getHour()+"Minute: "+Child.getMin());
}
}
}

这是我的 list 文件,我尝试重启并关闭我的手机,但它不起作用

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<receiver android:name=".AlarmReceiver"/>

<receiver android:name=".RestartAlarmsReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.REBOOT"/>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED"/>
</intent-filter>
</receiver>

我的 alarmReciver 类正在工作

最佳答案

您的 Manifest 操作应该类似于 。

 <receiver
android:name=".receivers.BootCompleteReceiver"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="1000">
<category android:name="android.intent.category.DEFAULT"/>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON"/>
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
<action android:name="android.intent.action.REBOOT"/>
</intent-filter>
</receiver>

正如我上面所述,自动启动 选项可能是无法获得重启广播的问题。因此也可以使用其他一些设备进行测试。如果设备具有自动启动功能,则为您的应用程序启用它。设置 > 权限 > 自动启动。这只能手动访问,即没有 API 可以通过编程方式更改启用/禁用它。您可以查看这些链接以获取更多信息 Link1 , Link2/

关于android 启动或重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47898969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com