- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在我构建的应用程序小部件中发出 HTTP 请求。
这个想法是每隔几个小时,小部件就会通过发出 HTTP 请求来更新自己,并使用它的信息来更新它的 View 。
我已经尝试在 onUpdate
函数中使用 Thread
,HTTP 请求工作正常,问题是我无法使用 runOnUiThread()
来更新 View ,因为我没有运行此函数的父 Activity 。
是否有另一种方法可以在 Thread
中更新小部件的 View ?
示例代码:
public void onUpdate(final Context context, final AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i=0; i<N; i++) {
final int appWidgetId = appWidgetIds[i];
final RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_card);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
try {
Http.Response resp = Http.postData("http://www.example.com", null, null, null);
views.setTextViewText(R.id.textview, resp.body);
}
catch (Exception ex) {
Log.e(TAG, Log.getStackTraceString(ex));
}
}
}
}
先谢谢你。
最佳答案
I've already tried to use a Thread in onUpdate function
这不是一个好主意。您的流程可以在您的工作完成之前终止。相反,创建一个 IntentService
来执行网络 I/O 并通过 AppWidgetManager
更新应用小部件。
the problem is that I can't use runOnUiThread() to update the views, because I have no parent activity to run this function on
由于您没有任何要更新的 View ,因此您无需为此担心。您可以设置 RemoteViews
并将它们交给后台线程上的 AppWidgetManager
。
关于java - 小部件内的 runOnUiThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373896/
我在数据库处理程序中构建了一个函数来使用 jsoup 从 sqlite + html 页面中获取数据。 如何设置 runOnUiThread 来处理数据库 habdler 函数中的线程数据? 或者我如
我收到了用户的错误报告,但我不知道我的代码出了什么问题。 logcat 是这样的: java.lang.NullPointerException at com.laurenswuyts.find.it
我想在我构建的应用程序小部件中发出 HTTP 请求。 这个想法是每隔几个小时,小部件就会通过发出 HTTP 请求来更新自己,并使用它的信息来更新它的 View 。 我已经尝试在 onUpdate 函数
事情是这样的:我正在使用 runOnUiThread() 方法从另一个类接收到来自另一部手机的消息时更改该类的 ImageView 。我通过使用 mainclass.runOnUiThread(new
我有 MainActivity(它扩展了 Activity)和 GameView(它扩展了 SurfaceView)。 MainActivity 有用于得分和剩余时间的 TextView。GameVi
我有一个 AsyncTask 正在运行,在这个线程中我启动了一个 runOnUiThread 来操作我的 View 。如果我关闭我的 AsyncTask,runOnUiThread 在我关闭我的 As
要从其他线程在主线程中运行某些内容,我们调用 runOnUiThread()。问题是,这个调用是同步的还是异步的? 如果我想在主线程中同步运行一些东西,我该怎么做? 最佳答案 您不能“在主线程中异步运
我的 android 应用程序存在内存泄漏。这是一个简单的音乐播放器。在屏幕底部,我有一个 TextView,用于显示耗时。它在下面的线程中更新。 每次我改变方向时,堆大小都会增加。通过查看 DDMS
如果考虑到效率,做following可以吗? new Runnable() { @Override public void run() { tr
我正在创建一个带有 ListView 的下载管理器,它将通过进度条显示当前下载的内容。我可以知道如何更新进度条吗? 例如。我有3节课。 "main.class"= 是一个 ListView 。 "mA
我有这个问题。我正在尝试从另一个线程更新我的 TextView 但它不允许我这样做。 我尝试了很多不同的解决方案,但似乎都没有帮助。在我的 while 循环代码中,一直打印“Started new l
我的应用程序应该连接到服务器并从中接收数据。但由于此错误而无法正常工作: android cannot resolve method runOnUiThread(anonymous java.lang
我正在开发一个使用第三方 tts 的应用程序,名为 flite。我正在做类似 tts 说一句话的事情。我想突出显示每个单词。为此,我设法从 tts 获得了单词级别的回调。工作流程是这样的——按下“说出
我一直在研究 runOnUiThread 方法。如果我只是在我的 Activity 中创建一个方法: public void Test() { runOnUiThread(new Runnab
我找到了 this这里有一个关于如何使用 runOnUiThread 方法的示例,但我不明白如何使用它。 我在主要 Activity 中设置了列表适配器 // Set a gobal refe
我有一个 fragment 叫做 MyRequestFragment ,其中包含一个 RecyclerView并将数据绑定(bind)到 RecyclerView使用 onBindViewHolder
我试图从我的后台线程在 UI 线程上抛出和警告对话框,但我遇到了 runOnUiThread 未定义的问题。我已经尝试过 FindLocation.this.runOnUiThread 和 runOn
我有这段代码: public void updateOptionLists() { Log.d("UI", "Called update"); if (updating){
这个问题在这里已经有了答案: Accessing UI thread handler from a service (7 个回答) 关闭8年前。 我想创建一项服务,如果有任何未读的 SMS,则每 20
我试图在我的一项 Activity 的 onCreate() 方法期间显示进度对话框,在线程中完成填充屏幕的工作,然后关闭进度对话框。 这是我的 onCreateMethod() dialog = n
我是一名优秀的程序员,十分优秀!