Как показать AlertDialog в IntentService? Ошибка выглядит так: Невозможно добавить окно - токен null не для приложения. Так что это проблема с контекстом, но я не знаю, как это исправить. Любые решения? Ниже мой код:Показать оповещениеDialog в IntentService
public class GcmMessageHandler extends IntentService {
private GoogleCloudMessaging gcm;
private static AlertDialog alert;
String mes;
private Handler handler;
public GcmMessageHandler() {
super("GcmMessageHandler");
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
handler = new Handler();
}
@Override
protected void onHandleIntent(Intent intent) {
Bundle extras = intent.getExtras();
gcm = GoogleCloudMessaging.getInstance(this);
String messageType = gcm.getMessageType(intent);
mes = extras.getString("message");
MApp.wakeupSync();
showToast();
Log.i("GCM", "Received : (" + messageType + ") " + extras.getString("message"));
GcmBroadcastReceiver.completeWakefulIntent(intent);
}
@Override
public void onDestroy() {
try {
gcm.unregister();
} catch (IOException e) {
e.printStackTrace();
}
}
public void showToast(){
handler.post(new Runnable() {
public void run() {
AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
builder.setMessage("TEST")
.setCancelable(false)
.setNegativeButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert = builder.create();
alert.show();
}
});
}
}
Я думаю, единственное, что вы можете сделать, это начать деятельность, которая показывает ваш диалог. Вы можете сделать фон активности прозрачным. – Christopher
Возвратите результат, откуда вы начали. –
Показать активность как диалог, <активность android: theme = "@ android: style/Theme.Dialog" /> – rajahsekar