У меня есть IntentService, где я пытаюсь отобразить диалоговое окно с сообщением после завершения некоторых процедур.Отображение диалога с помощью IntentService?
Я могу показать Тост делая
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(ServiceName.this, message, Toast.LENGTH_LONG);
}
});
, но я хочу, чтобы отобразить диалоговое окно вместо этого, так как он может отображать больше текста и выглядит чище, за то, что я пытаюсь сделать. Но когда я пытаюсь:
handler.post(new Runnable() {
@Override
public void run() {
new AlertDialog.Builder(ServiceName.this)
.setTitle("Title")
.setMessage(message)
.create().show();
}
});
Он выдает ошибку:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
Я не хочу идти возиться с моей Manifest потому, что может повлиять на все остальное в приложении, но есть ли путь вокруг этого? Могу ли я каким-либо образом передать AppCompatActivity в IntentService? Могу ли я каким-то образом связать IntentService с AppCompat? Какие у меня варианты?
Edit: Попытка использовать диалоговое деятельностный подход:
Intent intent = new Intent(ServiceName.this, ActivityWithDialogTheme.class);
intent.putExtra(ActivityWithDialogTheme.MESSAGE, message);
startActivity(intent);
Что вы хотите сказать, разместив на автобусе событий? Как получить активность, чтобы поднять ее? Что касается уведомлений, я не знаком, но мне кажется, что хорошо учиться – KaliMa
@KaliMa: «Что вы понимаете, отправляя на автобус событий?» - Я имею в виду использование шины событий (например, «LocalBroadcastManager») (https://github.com/commonsguy/cw-omnibus/tree/master/EventBus/LocalBroadcastManager) или [EventBus] greenrobot (https: // github .com/commonsguy/CW-омнибусный/дерево/ведущий/EventBus/GreenRobot3). «Как мне получить мероприятие, чтобы забрать его?» - это часть использования шины событий. Ссылки ранее в этом комментарии относятся к примерам проектов, демонстрирующих использование обеих этих шин, для пользовательского интерфейса или «Уведомления», являющегося результатом работы службы (в этом случае срабатывает «AlarmManager»). – CommonsWare
Означает ли это, что у меня нет вариантов, если я не пойму, как использовать EventBus в этой ситуации? – KaliMa