2017-09-24 5 views
-1

Ich bin neu in Android Studio und mein Problem ist mein Widget wird nicht aktualisiert. Nehmen wir an, ich habe meine Daten JSON geändert. Ich habe einige Threads gelesen und sagt, dass ein Widget ein Zeitintervall von 30 Minuten zum Aktualisieren hat. Aber ich habe 30 Minuten auf meinen Simulator gewartet und nichts geändert. Kann mir jemand dabei helfen? Weil ich möchte, dass mein Widget mindestens 30 Minuten standardgemäß aktualisiert wird.Wie Widget Widget Android Studio Kotlin aktualisieren

class TestWidget : AppWidgetProvider() { 

    private val httpClient = AsyncHttpClient() 
    private var title = String.toString() 
    private var imageUrl = String.toString() 

    override fun onUpdate(context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntArray) { 
     // There may be multiple widgets active, so update all of them 

     httpClient.get(jsonUrl, object : JsonHttpResponseHandler() { 
      override fun onSuccess(statusCode: Int, headers: Array<out Header>, response: JSONArray) { 

       val json = response.getJSONObject(0) 
       title = json.getString("title") 
       imageUrl = json.getString("imageUrl") 

       val views = RemoteViews(context.packageName, R.layout.test_widget) 
       views.setTextViewText(R.id.text, title) 
       Picasso.with(context) 
         .load(imageUrl) 
         .into(views, R.id.image, appWidgetIds) 

      } 

      override fun onFailure(statusCode: Int, headers: Array<out Header>?, throwable: Throwable?, errorResponse: JSONObject?) { 
       println(throwable?.localizedMessage) 

      } 
     }) 

     for (appWidgetId in appWidgetIds) { 
      updateAppWidget(context, appWidgetManager, appWidgetId) 

     } 
    } 

    override fun onEnabled(context: Context) { 
     // Enter relevant functionality for when the first widget is created 
    } 

    override fun onDisabled(context: Context) { 
     // Enter relevant functionality for when the last widget is disabled 
    } 

    companion object { 

     internal fun updateAppWidget(context: Context, appWidgetManager: AppWidgetManager, 
            appWidgetId: Int) { 

      // Construct the RemoteViews object 
      val views = RemoteViews(context.packageName, R.layout.test_widget) 

      // Instruct the widget manager to update the widget 
      appWidgetManager.updateAppWidget(appWidgetId, views) 
     } 
    } 
} 
+0

Wahrscheinlich ein Duplikat: https://Stackoverflow.com/q/4337824/1531971 – jdv

Antwort

0

OH, ich glaube, ich habe eine Lösung gefunden. Es gibt eine android:updatePeriodMillis auf meinem Widget Info XML. Das sollte den Trick machen.