2017-09-24 50 views
-1

我是Android Studio新手,我的問題是我的Widget沒有更新。比方說,我改變了我的數據JSON。我已經閱讀了一些主題,並說一個小部件有30分鐘的時間間隔刷新。但我已經等待了我的模擬器30分鐘,沒有任何改變。有人可以幫我解決這個問題嗎?因爲我希望我的小部件默認更新至少30分鐘..如何更新Widget Android Studio Kotlin

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

可能是重複的:https://stackoverflow.com/q/4337824/1531971 – jdv

回答

0

OH,我想我找到了解決方案。 我的Widget Info XML中有一個android:updatePeriodMillis。這應該夠了吧。