草庐IT

Android:退出 Looper?

我有一个线程,用于定期更新Activity中的数据。我创建了线程并启动了一个循环程序,以便将处理程序与postDelay()一起使用。在我的Activity的onDestroy()中,我在我的处理程序上调用removeCallbacks()。然后我应该调用handler.getLooper().quit()吗?还是不用担心,让操作系统来处理?或者它会一直运行下去,消耗CPU周期吗? 最佳答案 根据AndroidDocumentation你应该调用quit()。当您调用Looper.loop()时,会启动一个while循环。调用Loo

android - 无法在未调用 Looper.prepare() 的线程内创建处理程序

我有一个Activity,其中我有一个类(class)。text=newDynamictext(...);text.setText("txt");在我的DynamicTextjava我有这个代码:publicvoidsetText(Stringtext){this.text=text;newasyncCreateText().execute();//this.createText(text);}//privateHandlerhandler=newHandler();privateclassasyncCreateTextextendsAsyncTask{@Overrideprotect

android - 无法在未调用 Looper.prepare() 的线程内创建处理程序

我有一个Activity,其中我有一个类(class)。text=newDynamictext(...);text.setText("txt");在我的DynamicTextjava我有这个代码:publicvoidsetText(Stringtext){this.text=text;newasyncCreateText().execute();//this.createText(text);}//privateHandlerhandler=newHandler();privateclassasyncCreateTextextendsAsyncTask{@Overrideprotect

android - 无法在未调用 Looper.prepare() 的线程内创建处理程序

以下异常是什么意思;我该如何解决?这是代码:Toasttoast=Toast.makeText(mContext,"Something",Toast.LENGTH_SHORT);这是个异常(exception):java.lang.RuntimeException:Can'tcreatehandlerinsidethreadthathasnotcalledLooper.prepare()atandroid.os.Handler.(Handler.java:121)atandroid.widget.Toast.(Toast.java:68)atandroid.widget.Toast.m

android - 无法在未调用 Looper.prepare() 的线程内创建处理程序

以下异常是什么意思;我该如何解决?这是代码:Toasttoast=Toast.makeText(mContext,"Something",Toast.LENGTH_SHORT);这是个异常(exception):java.lang.RuntimeException:Can'tcreatehandlerinsidethreadthathasnotcalledLooper.prepare()atandroid.os.Handler.(Handler.java:121)atandroid.widget.Toast.(Toast.java:68)atandroid.widget.Toast.m

Android - 无法在未调用 Looper.prepare() 的线程内创建处理程序

我正在使用GoogleMapsV2API开发一个简单的应用程序,只是为了了解基础知识,但我遇到了这个错误:09-0921:21:41.154:E/AndroidRuntime(3796):FATALEXCEPTION:Thread-44109-0921:21:41.154:E/AndroidRuntime(3796):java.lang.ExceptionInInitializerError09-0921:21:41.154:E/AndroidRuntime(3796):atcz.vongrad.dataSourceLayer.DataMapper.loadLocation(DataM

Android AsyncTask [无法在未调用 Looper.prepare() 的线程内创建处理程序]

我已经基于一个函数创建了一个图片上传AsyncTask。上传后,我在onPostExecute()上收到此错误。我在Runnable上阅读了一些StackOverflow答案,但尽管实现了不同的解决方案,但我仍然一遍又一遍地收到错误。我的代码:classuploadFileextendsAsyncTask{privateProgressDialogpDialog;/***--------------------------------------------------------------------*---------------------------------Befores

android - Handlers、MessageQueue、Looper,它们都运行在 UI 线程上吗?

我正试图将我的头脑围绕在线程上,我知道我可以使用Handler将消息/runnables发布到MessageQueue,而MessageQueue由Looper拾取并发送回Handler进行处理。如果我在我的Activity中发布到Handler,是Activity、Handler、MessageQueue和Looper全部运行在UI线程上?如果没有,有人可以解释一下这一切是如何结合在一起的吗?:) 最佳答案 简答:它们都在同一个线程上运行。如果从Activity生命周期回调实例化,它们都在主UI线程上运行。长答案:一个线程可能有一

android - java.lang.RuntimeException : Can't create handler inside thread that has not called Looper. 准备();

这个问题在这里已经有了答案:Can'tcreatehandlerinsidethreadthathasnotcalledLooper.prepare()(30个回答)关闭2年前。我有一个运行线程的Android应用。我希望Toast消息与消息一起显示。当我这样做时,我得到以下异常:Logcat跟踪:FATALEXCEPTION:Timer-0java.lang.RuntimeException:Can'tcreatehandlerinsidethreadthathasnotcalledLooper.prepare()atandroid.os.Handler.(Handler.java:

android - Android 中的 runOnUiThread 与 Looper.getMainLooper().post

谁能告诉我使用runOnUiThread()与Looper.getMainLooper().post()在Android的UI线程上执行任务之间是否有区别??我唯一能确定的是,由于runOnUiThread是一个非静态的Activity方法,Looper.getMainLooper().post()当你需要在一个类中编写一些代码时更方便看不到Activity(比如界面)。我不是在寻找关于是否应该在UI线程上执行某些事情的讨论,我知道有些事情不能,很多事情不应该,但是,有些事情(比如启动AsyncTask)必须从UI线程执行。 最佳答案