몇 가지 절차를 마친 후 메시지가있는 Dialog를 표시하려고하는 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.
내가 그 응용 프로그램에서 다른 모든 것들에 영향을 미칠 수 있기 때문에 내 매니페스트와 주변 하구 가고 싶지 않아,하지만 거기에 어떤이다 이 주위에? 어떻게 AppCompatActivity를 IntentService로 전달할 수 있습니까? 어떻게 든 IntentService를 AppCompat과 연관시킬 수 있습니까? 내 옵션은 무엇입니까?
편집 : 대화 활동 방식 사용하려고 :
Can I somehow associate the IntentService with AppCompat?
번호
What are my options?
이 대화를 주제로 활동을 만들기
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) 또는 [greenrobot 's EventBus] (https : // github .com/commonsguy/cw-omnibus/트리/마스터/EventBus/GreenRobot3). "활동을 시작하려면 어떻게해야합니까?" - 그것은 이벤트 버스 사용의 일부입니다. 이 주석의 앞부분에있는 링크는 두 버스 모두의 사용을 보여주는 프로젝트 샘플을 UI 또는 서비스 작업의 결과가 될 알림 (이 경우에는 'AlarmManager'에 의해 트리거 됨)입니다. – CommonsWare
이 상황에서 EventBus를 사용하는 방법을 모르는 경우이 옵션을 사용하지 않는다는 것을 의미합니까? – KaliMa