2017-09-24 14 views
-1

私はAndroid Studioを初めて使用しています。私のウィジェットは更新されていません。データJSONを変更したとします。私はいくつかのスレッドを読んで、ウィジェットには30分の時間間隔があり、リフレッシュすると言います。しかし、私はシミュレータが30分待っていて何も変わっていません。誰かが私にこれを助けることができますか?私のウィジェットが少なくとも30分のデフォルトを更新したいからです。ウィジェットをアップデートするにはどうすればいいですか?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があります。それはトリックを行う必要があります。

関連する問題