繁体   English   中英

是否将BackgroundService集成到我的应用程序?

[英]Integrating BackgroundService to my app?

我正在做一个应用程序,例如使用AlarmManager通过时间提高电子邮件意图。 在此应用程序中,电子邮件意图会随着时间完美地提高。 如果我们设置一次提高电子邮件意图的方法,它将起作用。

如果我们重启设备,则在达到事件时间之前。 然后,该应用程序应该可以工作了。 但是,它不起作用。

缺少什么? 重新启动设备后,他们需要提出什么?

我认为您应该使用SharedPreferences保存状态。 查看以下代码,并进行一些有关SharedPreferences的搜索。 它易于实现。

private TimePickerDialog.OnTimeSetListener mSettingsTimePickerListener = new TimePickerDialog.OnTimeSetListener() {
    @Override
    public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
        sharedHour = hourOfDay;
        sharedMinute = minute;

        previousSharedHour = hourOfDay;
        previousSharedMinute = minute;

        try {
            final Calendar c = Calendar.getInstance();
            c.add(Calendar.HOUR_OF_DAY, hourOfDay);
            c.add(Calendar.MINUTE, minute);
            objDate = c.getTime();

            SharedPreferences alarmSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
            SharedPreferences.Editor prefEditor = alarmSettings.edit();

            prefEditor.remove(PREFS_NAME);
            prefEditor.commit();

            alarmSettings = getSharedPreferences(PREFS_NAME, MODE_PRIVATE);
            prefEditor = alarmSettings.edit();

            System.out.println("In seting dialog :   "+hourOfDay +" : "+minute);
            prefEditor.putInt("sharedHour", hourOfDay);
            prefEditor.putInt("sharedMinute", minute);
            prefEditor.commit();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
};

您需要在清单文件中使用带有动作<action android:name="android.intent.action.BOOT_COMPLETED" /> BroadcastReceiver 然后,您需要从中启动服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM