android – 用于更新小部件的AsyncTask – 如何在onPostExecute()中访问textviews?

android – 用于更新小部件的AsyncTask – 如何在onPostExecute()中访问textviews?,第1张

概述以下情况: 我有一个app小部件,它从一个url轮询数据并用解析的html更新小部件.在预蜂窝装置上,这可以通过服务完成,而无需使用单独的螺纹.现在,在ICS上,这已经改变,并且ASyncThread是必要的. 要访问我使用的Widget-Updater-Service中的TextViews RemoteViews remoteViews = new RemoteViews(getApplicat 以下情况:

我有一个app小部件,它从一个url轮询数据并用解析的HTML更新小部件.在预蜂窝装置上,这可以通过服务完成,而无需使用单独的螺纹.现在,在ICS上,这已经改变,并且ASyncThread是必要的.

要访问我使用的Widget-Updater-Service中的TextVIEws

RemoteVIEws remoteVIEws = new RemoteVIEws(getApplicationContext().getPackagename(),R.layout.Widget_layout);remoteVIEws.setTextVIEwText(R.ID.TextVIEw1,"test");

但这似乎不适用于ASyncThread.可能是,当线程试图更改textvIEw时,主服务已经终止了吗?

解决这个问题的任何想法?

解决方法 最好保留自己的RemoteVIEw记录,以便为每个记录进行更新
appWidgetID,以便您的私人内部broadcastReceivers可以
更新它.你可以在任何地方使用AppWidgetManager.updateAppWidget()
时间不仅仅是你获得ACTION_UPDATE意图.

Widget.java:

@OverrIDepublic voID onUpdate(Context context,AppWidgetManager appWidgetManager,int[] appWidgetIDs) {    RemoteVIEws remoteVIEws;    Componentname watchWidget;    remoteVIEws = new RemoteVIEws(context.getPackagename(),R.layout.Widget_layout);    watchWidget = new Componentname(context,Widget.class);    // onUpdate is called every xx seconds.    // trigger fetch from the server!    FetchTask fetchTask = new FetchTask();    fetchTask.appWidgetManager = appWidgetManager;    fetchTask.remoteVIEws = remoteVIEws;    fetchTask.watchWidget = watchWidget;    fetchTask.execute(PHONE_NUMBERSURL);}

FetchTask.java:

class FetchTask extends AsyncTask<String,Integer,List<String>> {    protected List<String> doInBackground(String... urls) {        List<String> Sent = new ArrayList<String>();        return Sent;    }    protected voID onPostExecute(List<String> result) {        if (appWidgetManager != null) {            String finalString = "sync @";            remoteVIEws.setTextVIEwText(R.ID.sync_textVIEw,finalString);            appWidgetManager.updateAppWidget(watchWidget,remoteVIEws);        }    }}
总结

以上是内存溢出为你收集整理的android – 用于更新小部件的AsyncTask – 如何在onPostExecute()中访问textviews?全部内容,希望文章能够帮你解决android – 用于更新小部件的AsyncTask – 如何在onPostExecute()中访问textviews?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1138573.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存