Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更新widget Android Studio Kotlin_Android_Android Widget_Kotlin - Fatal编程技术网

如何更新widget Android Studio Kotlin

如何更新widget Android Studio Kotlin,android,android-widget,kotlin,Android,Android Widget,Kotlin,我是Android Studio的新手,我的问题是我的小部件没有更新。假设我更改了数据JSON。我读过一些文章,说一个小部件有30分钟的刷新时间间隔。但我已经等了我的模拟器30分钟,什么也没变。有人能帮我吗?因为我希望我的小部件至少更新30分钟的默认值 class TestWidget : AppWidgetProvider() { private val httpClient = AsyncHttpClient() private var title = String.toS

我是Android Studio的新手,我的问题是我的小部件没有更新。假设我更改了数据JSON。我读过一些文章,说一个小部件有30分钟的刷新时间间隔。但我已经等了我的模拟器30分钟,什么也没变。有人能帮我吗?因为我希望我的小部件至少更新30分钟的默认值

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)
        }
    }
}
class TestWidget:AppWidgetProvider(){
private val httpClient=asynchtpclient()
private var title=String.toString()
private var imageUrl=String.toString()
重写fun onUpdate(上下文:上下文,appWidgetManager:appWidgetManager,AppWidgetId:IntArray){
//可能有多个窗口小部件处于活动状态,因此请更新所有窗口小部件
get(jsonUrl,对象:JsonHttpResponseHandler(){
覆盖成功时的乐趣(状态代码:Int,标题:Array,响应:JSONArray){
val json=response.getJSONObject(0)
title=json.getString(“title”)
imageUrl=json.getString(“imageUrl”)
val views=远程视图(context.packageName、R.layout.test_小部件)
views.setTextViewText(R.id.text,title)
毕加索。与(上下文)
.load(图像URL)
.into(视图、R.id.image、AppWidgetId)
}
覆盖失败(状态代码:Int,标题:Array?,throwable:throwable?,错误响应:JSONObject?){
println(可丢弃?.localizedMessage)
}
})
for(appWidgetId中的appWidgetId){
updateAppWidget(上下文、appWidgetManager、appWidgetId)
}
}
覆盖已启用(上下文:上下文){
//输入创建第一个小部件时的相关功能
}
已禁用覆盖(上下文:上下文){
//输入禁用最后一个小部件时的相关功能
}
伴星{
内部fun updateAppWidget(上下文:context,appWidgetManager:appWidgetManager,
appWidgetId:Int){
//构造RemoteView对象
val views=远程视图(context.packageName、R.layout.test_小部件)
//指示小部件管理器更新小部件
appWidgetManager.UpdateAppWidgetId(appWidgetId,视图)
}
}
}

哦,我想我找到了解决办法。 在我的Widget Info XML上有一个
android:updatePeriodMillis
。这应该可以解决问题。

可能是重复的: