草庐IT

runnables

全部标签

android - 在 finish() 之后,发布到 Activity 的 Handler 的 Runnables 将继续执行多长时间?

我有一个链接到UI线程的Handler。正如预期的那样,我可以向它post()Runnable并让它们在UI线程上执行。我还有一个按钮,按下该按钮时将调用Activity上的finish()。finish()如何影响UIHandler的消息队列?它会处理队列中的所有消息但不再接受吗?它会不会直截了本地拒绝运行任何东西并立即终止(我有理由相信这不是真的)。在onDestroy()被调用之前,它会继续允许Runnable被发送到它吗?您应该假设Activity堆栈只包含一个Activity。 最佳答案 您可以在您的应用程序仍然存在时通过

android - Job Scheduler vs Runnable:下行?

对于周期性的后台任务,我发现经常使用JobScheduler。或者,也有JobService和AlarmManager表示轻微的(?)不同的用例。但是,为什么不推出一个新的Runnable?在后台任务中使用Runnable有什么缺点?Runnable空闲时是否使用更多资源? 最佳答案 Runnable是一个接口,除了提供一个名为run的方法之外,它本身什么也不做。也许您想知道如何使用HandlerThread、Thread、AsyncTask、ExecutorService与JobScheduler、IntentService和Al

java - 线程池执行器 : Get a specific Runnable that is being executed

我正在使用ThreadPoolExecutor在后台执行多个长时间运行的任务,ThreadPoolExecutor的池大小为4,因此当添加超过4个任务时,它们将被推送到队列,当4个任务之一完成时,一个任务从队列中弹出以供执行。我想知道有什么方法可以访问当前正在执行但不在队列中的Runnable对象,即前4个任务。目标:我想通过mThreadPoolExecutor.getQueue()的帮助在任何给定点获取任务的当前状态我正在访问正在排队并准备执行的任务,请建议我访问当前正在执行的任务的方式,以便我可以在需要时附加和删除其上的监听器/处理程序。我的可运行类:publicclassVid

android - 为什么在post() runnable中查看宽高为0?

我正在获取View的高度和宽度,在getView()方法中膨胀。这是一个网格项。通常我在View上使用post()来获取尺寸,在它被附加到布局之后。但它返回0。finalViewconvertViewFinal=convertView;convertView.post(newRunnable(){@Overridepublicvoidrun(){doSomethingWithConvertView(convertViewFinal);}});...doSomethingWithConvertView(Viewv){v.getWidth();/*returns0*/};如何获取尺寸?

java - 如何停止或退出 "Runnable"

这个问题在这里已经有了答案:Android:HowdoIstopRunnable?(5个答案)关闭9年前。我是android的新手。我正在构建应用程序以通过WiFi收听传入消息,它可以很好地收听和更新UI但是当我尝试退出时它不会响应后退按钮按下直到它收到消息缓冲。据我了解,按钮在UI线程上,而Runnable是一个单独的线程,这就是为什么它不立即响应按钮按下的原因,因为它在单独的线程上很忙。那么如何通过按下后退按钮来中断“Runnable”呢?任何帮助将不胜感激。publicRunnablemUpdate=newRunnable(){publicvoidrun(){try{line=i

android - 如何将 Runnable 对象传递给处理程序?

我正在通过一本书学习,它给了我这个例子:Handlerhandler=newHandler(){@OverridepublicvoidhandleMessage(Messagemsg){bar.incrementProgressBy(5);}};和Threadbackground=newThread(newRunnable(){publicvoidrun(){try{for(inti=0;i效果很好。但是,在书的更下方,它说:IfyouwouldrathernotfusswithMessageobjects,youcanalsopassRunnableobjectstotheHandl

android - thread/runnable, handler, runonuithread, asynctask 之间的区别

我开始学习安卓编程,并且正在开发一款小游戏。我听说做后台操作或更新或下载或任何后台和耗时的事情不应该用uithread来完成,而是使用thread/runnable或asynctask。但是我不能在线程中做一些事情,比如后台连接到数据库,因为这个连接与剩余的处理程序一起工作,runonuithread,asynctask.am非常困惑在哪里使用哪个。我有一些问题1.handler、runonuithread都运行在ui线程上,thread/runnable是不同的线程,在异步任务中,doinbackground方法运行在不同的线程上,其他方法如onprogressupdate、onpr

Java - 等待 Runnable 完成

在我的应用程序中,我在后台线程上运行了以下代码:MyRunnablemyRunnable=newMyRunnable();runOnUiThread(myRunnable);synchronized(myRunnable){myRunnable.wait();}//restofmycodeMyRunnable看起来像这样:publicclassMyRunnableimplementsRunnable{publicvoidrun(){//dosometaskssynchronized(this){this.notify();}}}我希望后台线程在myRunnable完成执行后继续。有人告

java - Runnable 运行在哪个线程上?

我想每100毫秒更新一次UI。在StackOverflow中搜索后,我找到了一个使用Runnable和Handler的解决方案,如下所示finalHandlerhandler=newHandler();Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){//updateUIherehandler.postDelayed(this,100);}};runnable.run();有效!但我有一些问题:这个Runnable在哪个线程上运行?MainThread还是另一个线程?这是关于postDelay的文档Handler附加在Mai

java - 构造后设置 Java 线程的 Runnable

JDK7Java文档建议使用以下两种习惯用法来创建Java线程:扩展线程并覆盖run()classPrimeThreadextendsThread{longminPrime;PrimeThread(longminPrime){this.minPrime=minPrime;}publicvoidrun(){//computeprimeslargerthanminPrime...}}...//AndtolaunchthecustomThreadPrimeThreadp=newPrimeThread(143);p.start();实现Runnable并创建一个新线程,将Runnableimp