Я пытаюсь просто запустить действие из службы в течение нескольких дней.Это не может быть так сложно!Все, что я хочу, это:
1) Запустить действие из фоновой службы (по расписанию AlarmManager).В настоящее время я делаю это с помощью этого кода
Intent i = new Intent(this, MyDialogActivity.class);
i.putExtra(MyDialogActivity.TEXT, myObject.getText());
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
2) Показывать это действие, если корневое действие находится сверху, или уничтожено действие root с помощью кнопки назад, или приостановлено действие root с помощью кнопки.кнопка «Домой»
3) Показывать это действие, когда устройство находится в режиме ожидания или нет (действие должно отображаться после того, как пользователь выведет устройство из режима ожидания)
4) Уничтожить действие обязательно иотправить трансляцию после того, как пользователь увидел активность и нажал кнопку (включая кнопку «домой» и «назад»).В настоящее время я делаю это с этим кодом (pm - PowerManager)
protected void onPause() {
if (pm.isScreenOn()) {
sendBroadcast(retValue);
if (!isFinishing()) {
finish();
} else {
moveTaskToBack(true);
}
}
super.onPause();
}
5) Предотвращение того, что это действие может быть запущено из другой точки, чем вызывающая служба.В настоящее время я делаю это с помощью установки этих атрибутов в AndroidManifest:
android: name = ". Activities.MyDialogActivity" android: noHistory = "true" android: excludeFromRecents = "true"
Но что бы я ни делал, я не могу понять, 2) и 3).Кто-нибудь может мне помочь?
Спасибо!