草庐IT

RUNNABLE

全部标签

Android如何实现从runnable执行异步任务

文档说execute()必须从UI线程调用。但是,由于我每隔几秒更新一次图像,所以我使用的是Runnable。在那里,我定义了必须执行的操作。Starting(execute())ASyncTask就是其中之一。但是,由于ASyncTask不应该从UI线程以外的任何地方调用,我该如何继续? 最佳答案 只需添加runOnUiThread在Runnable中启动AsyncTask:privateRunnableupdateImages=newRunnable(){publicvoidrun(){runOnUiThread(newRunn

android - Handler 中 post(Runnable) 和 sendMessage(Message) 的区别

我只想知道使用sendMessage(Messagemsg)和post(Runnabler)的确切区别是什么。因为即使我们有SeperateRunnable,这两种方法都将在主UI线程中运行。 最佳答案 在幕后他们实际上调用了相同的代码。所以这不是一个大问题。SendMessage可能稍微更有效率(使用更少的对象,因为post将创建一个Message对象),但效率太低以至于根本无关紧要。使用sendMessage您可以添加一个数据对象和一个runnable,但如果您不使用匿名对象并通过构造函数将其传入,则可以使用Runnable来实

java - 嵌套的 postDelayed/Runnable/Handler Android

我正在尝试使用嵌套的postDelayed,因为我需要在(延迟)5分钟后做一些事情,在(延迟)30秒后停止它,做其他事情,然后从头开始再次重复循环中的两个事件。我似乎做对了。我目前的代码:privatelongEnabledAfter=300000;//5minutesprivatelongDisabledAfter=30000;//30secondspublicvoidstart_timers(){on_delayed(EnabledAfter);}//endmethodprivatevoidon_delayed(longperiod_off){Delayed=newRunnable

android - 关于Android runnable的一个问题

在网上看到一段代码。我想知道为什么我们需要使用runnable来设置TextView的文本?谢谢!while(true){//listenforincomingclientsSocketclient=serverSocket.accept();handler.post(newRunnable(){@Overridepublicvoidrun(){serverStatus.setText("Connected.");}});http://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-

java - 在调用 runnable 之前,具有 postDelayed 的本地处理程序是否会收集垃圾

做以下事情安全吗?这确实很方便,但是Handler可以在runnable运行之前收集垃圾吗?publicvoiddodelayed(){newHandler().postDelayed(newRunnable(){@Overridepublicvoidrun(){//dosomething}},50);} 最佳答案 不,它没有GC。这样做就好了。稍长一点的解释,以避免混淆:虽然您没有存储对处理程序的引用,但它存储在其他地方。在方法中sendMessageAtTime,它是从postDelayed内部调用的,在handler将消息放入

android - 如何在android中使用runnable

你好,我是JavaAndroid开发的新手,我想知道如何在Android中使用Runnable。它似乎对我不起作用。这是我的源代码:MainTest.javapackagecom.heeere.androiddnssd.discovery;importandroid.annotation.SuppressLint;importandroid.app.Activity;importandroid.os.Bundle;importandroid.widget.TextView;publicclassMainTestextendsActivity{android.net.wifi.WifiM

android - Handler.postDelayed(...) 不会延迟 Runnable

我自己实现了一个OnCompletionListener,如下所示:publicclassSongEndCompletionListenerimplementsOnCompletionListener{StringnextView;ContextactualActivity;intstopTime;publicSongEndCompletionListener(Contextactivity,StringnextView,inttime){this.nextView=nextView;actualActivity=activity;}@OverridepublicvoidonCompl

Android:获取时间直到通过处理程序执行Runnable

我的应用程序中有一个计时器,它关闭了使用处理程序实现的应用程序,我将延迟的可运行“退出”发布到该处理程序。当用户单击计时器图标时,它还应该显示剩余时间。我怎样才能得到这些数据?我应该实现一个计算秒数并使用该数据的对象吗? 最佳答案 我更喜欢使用ScheduledExecutorService与ScheduledFuture,这些API比Handler和TimerIMO更高效、更强大:ScheduledExecutorServicescheduledTaskExecutor=Executors.newScheduledThreadPo

java - 如何在静态方法中使用 "runOnUiThread(runnable)"?

我在两个不同的类中编写代码。第一个运行IOIO线程,它读取IOIO板的引脚状态;当这个线程运行时,它会更新其他类(Tab3Activity.java)上的几个TextView。我调用了更新UI的方法,就像下面的代码一样。Tab3Activity.setText(index,"stringhere");上面的setText()需要是静态的,否则会报错Cannotmakeastaticreferencetothenon-staticmethodsetText(int,String)fromthetypeTab3Activity问题出在Tab3Activity.java上。publicsta

java - 如何在 AsyncTask 中使用 Runnable.wait()?为什么 AsyncTask 不等待...?

我正在使用AsyncTask运行后台操作。当然,在已经在后台线程中工作的情况下切换到另一个线程通常没有多大意义,除非另一个线程是UI线程。这就是我想要的:当任务正在运行时,我需要“访问”用户界面,例如显示一个对话框询问用户如何进行。运行后台任务在某个时候停止任务以获取用户反馈切换到UI线程以显示对话框并请求输入切换回后台任务继续工作如何做到这一点?我以为我可以将Runnable与myActivity.runOnUiThread(runnable)一起使用,但这不起作用:privatevoidcopyFiles(){CopyTaskcopyTask=newCopyTask(this);c