- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
例如,如果我有一个线程在做昂贵的事情,并且我想从该线程触发 Main( Activity )类中的 runOnUiThread。显然我不应该创建我的 Activity 类(Main)的实例。所以如果我尝试
Main.runOnUiThread(mRunnable);
在我的线程中,它给了我一个错误,说它不是静态方法,因此无法以我的方式访问它。现在我的理解是, Activity 类几乎是以静态方式访问的。
我该怎么做?
(顺便说一句:我这样做是因为我得到了CalledFromWrongThreadException,只有创建 View 层次结构的原始线程才能触及它的 View )
最佳答案
Raunak 的想法很正确。我将补充一点,您还可以在方法 sendEmptyMessage 中指定一个整数作为处理程序的标识符。这将允许您创建一个可以处理所有 UI 更新的处理程序,例如
public static final int EXAMPLE = 0;
public static final int ANOTHER_EXAMPLE = 1;
private final Handler handler = new Handler(){
@Override
public void handleMessage(Message msg) {
switch( msg.what ){
case EXAMPLE:
//Perform action
break;
case ANOTHER_EXAMPLE;
//Perform action
break;
}
}
}
//Call to submit handler requesting the first action be called
handler.sendEmptyMessage(EXAMPLE);
希望这对您有所帮助!
关于Android Activity.runOnUiThread 不是静态的,那么我该如何使用它呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7539491/
我在数据库处理程序中构建了一个函数来使用 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
我是一名优秀的程序员,十分优秀!