草庐IT

runnables

全部标签

java - Runnable 是如何从 Java8 lambda 创建的

这个问题在这里已经有了答案:WhatisthebreakdownforJava'slambdasyntax?(4个答案)关闭7年前。我遇到了一些代码,尽管阅读了一些代码,但我仍难以理解。有一个方法调用接受两个参数,其中一个是Runnable。尽管有lambda,但没有传入Runnable对象。例如:publicclassLambdaTest{privatefinalLocklock=newReentrantLock();@TestpublicvoidcreateRunnableFromLambda(){Locker.runLocked(lock,()->{System.out.prin

android - runOnUiThread(new Runnable(){}) 对于 new Thread(){} 类型未定义

看零件:runOnUiThread(newRunnable(){我有问题:ThemethodrunOnUiThread(newRunnable(){})isundefinedforthetypenewThread(){}所以我知道runOnUiThread必须来自一个Activity。但我不确定这将如何实现?它是首选项/设置View中的对话框这就是ChannelsDialogPreference的来源:pref_channels.xmlChannelsDialogPreference:packagecom.example.tvrplayer;importjava.util.ArrayL

Android Asynctask vs Runnable vs timertask vs Service

这些方法(类)有什么区别?我想运行一个每5秒运行一次的应用程序,完成后清除内存并且当cpu处于待机模式时,您可以运行该应用程序。这样应用就不会绑定(bind)到唤醒锁。问候,沙夫卡特 最佳答案 前三个之间的区别只是为您完成的工作量。还有一个Service是fundamentalAndroidapplicationcomponent.AsyncTask作为一个便利类,用于在新线程上做一些工作,并在完成后在调用它的线程(通常是UI线程)上使用结果。它只是一个包装器,它使用了几个可运行对象,但处理了创建线程和处理线程之间的消息传递的所有复

java - 在运行另一个 Runnable 之前等待 Runnable 完成

我有一个带有主选项卡Activity的Android应用,以及各个选项卡中的多个Activity。在我的主要Activity的onCreate()中,我有一个创建列表的可运行文件,在各个Activity中,我使用了这个列表。在单个Activity的onCreate()中,我还有对列表进行操作的Runnables。但是,我需要这些Runnable仅在主选项卡Activity的Runnable完成创建列表时运行,否则我会得到一个空列表。我试图找到一种优雅的方式来做到这一点。现在,在我的主要Activity的Runnable中,我正在设置一个全局boolean变量isDone,而在我的个人A

android - RecyclerView 在使用 Runnable 从 Handler 使用 notifyItemChanged 时崩溃 [IllegalArgumentException]

我使用RecyclerView作为列表来显示可以下载的歌曲。每个项目的View中都有ProgressBar。当下载开始时,我使用Handler通知每个项目更新ProgressBar以显示歌曲下载进度。Q1.IsthisisacorrectwaytodoitorIsthereanyotherwaytodoitmoreappropriately.Q2.RecyclerViewgetscrashedwhenweuseadapter.notifyItemChanged(position);toupdatethecontentofsingleitem.ItiscalledfromaHandler

android - 使用 Runnable 和 postDelayed 更新 UI 不适用于计时器应用程序

我已经查看了我可以找到的所有讨论和线程,但事实并非如此。我有一个简单的计时器来更新TextView(下面示例中的mTimeTextField)。mUpdateTimeTask运行方法正在正确执行(每秒),但UI/文本字段未更新。我有基于此处找到的信息的代码:http://android-developers.blogspot.com/2007/11/stitch-in-time.htmlhttp://developer.android.com/resources/articles/timed-ui-updates.html代码如下:packagecom.something.handle

Android - 如何将数据传递给runOnUiThread中的Runnable?

我需要更新一些UI并在UI线程内使用runOnUiThread现在UI的数据来自另一个线程,这里用data表示。如何将数据传递给Runnable,以便它们可用于更新UI?Android似乎不允许直接使用数据。有没有优雅的方法来做到这一点?publicvoidOnNewSensorData(Datadata){runOnUiThread(newRunnable(){publicvoidrun(){//usedata}});}我的解决方案是在可运行文件中创建一个字段privateDatasensordata,并为其分配数据。这仅适用于原始Datadata是最终的。publicvoidOnN

Android:如何停止 Runnable?

我试过这样:privateRunnablechangeColor=newRunnable(){privatebooleankillMe=false;publicvoidrun(){//someworkif(!killMe)color_changer.postDelayed(changeColor,150);}publicvoidkill(){killMe=true;}};但我无法访问kill()方法! 最佳答案 使用SDK提供的现有API来实现您自己的thread.kill()机制。在threadpool中管理您的线程创建,并使用F

android - 更新 GUI : Runnables vs Messages

要从其他线程更新GUI,主要有两种方法:将java.lang.Runnable与以下任一方法一起使用:Activity.runOnUiThread(Runnable)View.post(Runnable)View.postDelayed(Runnable,long)Handler.post(Runnable)使用android.os.Message:Handler.sendMessage(Message)/Handler.handleMessage(Message)您也可以使用AsyncTask,但我的问题更侧重于更新一个非常简单的组件的用例。让我们看看如何使用这两种方法来完成:使用R

java - new Runnable() 但没有新线程?

我正在尝试理解代码here,特别是匿名类privateRunnablemUpdateTimeTask=newRunnable(){publicvoidrun(){finallongstart=mStartTime;longmillis=SystemClock.uptimeMillis()-start;intseconds=(int)(millis/1000);intminutes=seconds/60;seconds=seconds%60;if(seconds文章说TheHandlerrunstheupdatecodeasapartofyourmainthread,avoidingth