-3

В настоящее время я использую фрагмент, который запускает сервис. Служба использует асинтез для подключения к серверу. Я хочу показать диалог прогресса, когда приложение подключается к серверу. Проблема в том, что пробовал передать контекст приложения для диалога, и я получаю ошибку токена.Служба Android asynctask

Я думаю, что мне нужен контекст моей деятельности, и я не знаю, как передать его службе, чтобы он мог использовать ее для передачи ее в асинтезу. Соединение реализуется в методе onCreate() службы.

LogCat:

08-06 12:58:01.696: E/AndroidRuntime(16733): java.lang.RuntimeException: Unable to  create service com.homedcs.pushservice.PushAlarm: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 
08-06 12:58:01.696: E/AndroidRuntime(16733): at android.app.ActivityThread.handleCreateService(ActivityThread.java:2564) 
08-06 12:58:01.696: E/AndroidRuntime(16733): at android.app.ActivityThread.access$1600(ActivityThread.java:181) 
08-06 12:58:01.696: E/AndroidRuntime(16733): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1414) 
08-06 12:58:01.696: E/AndroidRuntime(16733): at android.os.Handler.dispatchMessage(Handler.java:99) 

Услуги:

@Override 
public void onCreate() { 

    if(connection == null){ 
     try { 
      connection = new PushConnection(getApplicationContext()).execute().get(); 
     } catch (InterruptedException | ExecutionException e2) { 
      e2.printStackTrace(); 
     } 
    } 

AsyncTask:

public PushConnection(Context context) { 
    this.context = context; 

} 

@Override 
protected void onPreExecute() { 
    super.onPreExecute(); 
    dialog = new ProgressDialog(context); 
    dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
    dialog.show(); 

} 
+0

я надеюсь, что у не использованияКонтактная UI в DoINBacground – KOTIOS

+0

поста какой-то код и LogCat – nobalG

+0

AsyncTask имеет собственный диалог прогресса .. показать свой LogCat – prabhakaran

ответ

0

Вы запускаете Asynctask из службы, поэтому отправляйте объект службы вместо applicationcontext как service в качестве контекста.

+0

08-06 14: 15: 11.450: E/AndroidRuntime (17660): java.lang.RuntimeException: невозможно создать службу com.homedcs.pushservice.PushAlarm: android.view.WindowManager $ BadTokenException: не удается добавить окно-токен null не для приложения –

+0

Вы получите исключение BadTokenException, если вы используете контекст активности, которая не находится на переднем плане, поэтому лучше используйте service.this как контекст – Prachi

+0

Пробовал, такая же ошибка. –

1

При вызове делать в фоновом режиме начинается второй нитки и использовать прогресс баров настройки в на старте прогресса.

попробовать {

connection = new PushConnection(className.this).execute().get(); 

} catch (InterruptedException | ExecutionException e2) { 

     e2.printStackTrace(); 
    } 
} 

Просто измените getAppliactionContext к классу исх. Используйте это и дайте мне ответ

Смежные вопросы