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

时间:2011-12-21 05:10:10

标签: android email

我正在做一个应用程序,例如使用AlarmManager按时间提高电子邮件意图。在这个应用程序中,电子邮件意图完美地提升了。如果我们设置一次时间来提高电子邮件意图,它就会起作用。

如果我们在事件发生之前重启设备。然后,应用程序应该工作。但是,它不起作用。

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

2 个答案:

答案 0 :(得分:2)

我认为你应该使用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();
        }
    }
};

答案 1 :(得分:1)

您需要在清单文件中使用BroadcastReceiver和操作<action android:name="android.intent.action.BOOT_COMPLETED" />。然后你需要从它开始服务。