gpt4 book ai didi

java - 小部件的 runOnUiThread 方法模拟?

转载 作者:行者123 更新时间:2023-12-01 23:26:59 27 4
gpt4 key购买 nike

我有一个小部件需要在另一个线程中执行一些操作。它有一个方法可以处理一些数据并在小部件上的 TextView 中显示结果。
为了实现这一点,我需要在单独的线程中调用我的方法。然后我需要在该方法的末尾添加一些代码以在小部件上显示结果(类似于 textView1.setText("my results");
这必须完成在 UI 线程中。我想使用方法 runOnUiThread。但它只存在于一个 Activity 中。小部件类是否有类似的方法?我该怎么做才能在我的小部件中使用该方法?

这是我的代码:

public class MyWidgetProvider extends AppWidgetProvider {

@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds)
{
//...
//here I need to launch a method toBeLaunchedInASeparateThread in a separate thread
}

public void toBeLaunchedInASeparateThread()
{
// ... many operations
int result = 0;

//here I need to launch the following line in the UI thread to follow Android guidelines
setTextToTextView(context, "My result is " + result);
}

public static void setTextToTextView(Context context, String text)
{
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_sample);
views.setTextViewText(R.id.widgetTextViewCard, text);
ComponentName myWidget = new ComponentName(context, MyWidgetProvider.class);
AppWidgetManager manager = AppWidgetManager.getInstance(context);
manager.updateAppWidget(manager.getAppWidgetIds(myWidget), views);
}

}

最佳答案

您可以使用处理程序来连接 UI 线程并在其队列上发布。 Handler.post(可运行)Here文档

关于java - 小部件的 runOnUiThread 方法模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19840545/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com