2015-02-20 3 views
0

Я создаю виджет, который должен сделать сетевое подключение для обновления своей информации.Как обновить виджет, который зависит от AsyncTask

Я довольно много с помощью шаблона шаблонного Android Studio для виджетов, и метод его onUpdate приходит с этим:

public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { 
    // There may be multiple widgets active, so update all of them 
    final int N = appWidgetIds.length; 
    for (int i = 0; i < N; i++) { 
     updateAppWidget(context, appWidgetManager, appWidgetIds[i]); 
    } 
} 

где updateAppWidget является статической функции.

Проблема заключается в том, что я делаю использование AsyncTask сделать подключение к сети, получить некоторые данные и обновление виджета его значение:

private class APIQuery extends AsyncTask<Connection, Integer, String> { 

    @Override 
    protected String doInBackground(Connection... params) { 
    // ... 
    } 
} 

Проблема заключается в updateAppWidget, потому что если я пытаюсь создать экземпляр APIQuery изнутри updateAppWidget, Android Studio говорит, что я не могу вызывать нестатический метод из статического метода.

На основании этого ответа:

calling non-static method in static method in Java

Единственный способ назвать нестатический способом является создание экземпляра класса, но если я создаю экземпляр APIQuery, то Android говорит, что я должен либо сделать updateAppWidget нестатический, или APIQuery статический.

Каков правильный подход к этой ситуации? Я новичок в разработке Java и Android, и изучаю, когда я иду.

+0

попробовать из PublishProgress из Asyntask Http: // code2concept. blogspot.in/2015/01/asynctask-android-example.html – nitesh

ответ

0

Вы можете попробовать обновить виджет либо из метода onPostExecute задачи асинхронной, или вы можете послать сигнал с помощью широковещательных приемников на хостинг деятельность, чтобы обновить виджет

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