草庐IT

runnable

全部标签

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

android - Activity 类型中的方法 runOnUiThread(Runnable) 不适用于参数 (void)

我正在尝试从非UI线程在onUtteranceCompleted()中创建一个对话框:runOnUiThread(newThread(newRunnable(){publicvoidrun(){MyDialog.Prompt(this);}}).start());Prompt()是MyDialog类的一个简单的静态方法:staticpublicvoidPrompt(Activityactivity){MyDialogmyDialog=newMyDialog();myDialog.showAlert("Alert",activity);}问题是我尝试执行的操作遇到了两个错误:方法runO

android - 将 handler.post(new Runnable());在 Android 中创建新线程?

我编写了一个每3秒更改一次应用程序背景的小应用程序。我使用Handler和Runnable对象来实现这一点。它工作正常。这是我的代码:publicclassMainActivityextendsActivity{privateRelativeLayoutbackgroundLayout;privateintcount;privateHandlerhand=newHandler();@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentVi

android - 处理程序无法向主线程传递消息或 Runnable

我有一个带有两个线程的应用程序-主线程和数据加载器。当数据加载器完成时,它会将一个Runnable对象发布到主线程(如DevGuide中所述),但它永远不会被传送和运行。基本代码如下:classMyAppextendsApplication{publicvoidonCreate(){LoaderThreadt=newLoaderThread();t.start();}privateclassLoaderThreadextendsThread{publicvoidrun(){SystemClock.sleep(2000);booleanres=m_handler.post(m_runna

java - 这个 Runnable 不会发生内存泄漏吗?

我完全是Java的初学者,并且创建了一个简单的JavaAndroid代码段,其中1.5秒后在Runnable中,我将TextView从HelloWorld更改为HolaMundo。它完美地工作,基本上WeakReference应该可以防止这种内存泄漏的发生,对吗?我怀疑每当发生设备方向时是否绝对没有内存泄漏。我很想检查一下,但无法在我的模拟Android中改变方向。这是代码:packagecom.example.helloworld;importandroid.app.Activity;importandroid.os.Bundle;importandroid.os.Handler;i

android - 在自定义 Runnable 中使用 Retrofit 执行请求

我正在从Volley迁移到使用Retrofit的自定义实现,但我正在尝试向我的实现中添加一些Volley我喜欢的功能,例如RequestQueue.cancel(字符串标签)如果Request具有请求的标记,则通过将boolean值mCanceled设置为true来取消它。run方法检查这个值,如果为真则返回。为了能够使用Retrofit重现这一点,我应该能够使用我的自定义类实现Runnable而不是默认类,我有一个mTag和一个mCanceled字段。此外,Volley还能够在Activity的Thread中设置这样的标志并立即停止它们。我已经实现的cancelAll方法只是将队列排

java - 我怎样才能抑制匿名 new runnable() 可以用 lambda 代替

我收到“anonymousnewrunnable()canbereplacedwithlambda”警告,代码如下。finalScrollViewsv=(ScrollView)findViewById(R.id.scrollView);sv.post(newRunnable(){@Overridepublicvoidrun(){sv.fullScroll(ScrollView.FOCUS_DOWN);}});我在谷歌上搜索得很辛苦,似乎是用lambda表达式重写的......finalScrollViewsv=(ScrollView)findViewById(R.id.scrollVi

java - 是否有 RxJava 等效于 Handler.postDelayed(Runnable r, long delayMillis)

我正在尝试调用一个返回void(Java原始类型)的方法。我想将它的调用延迟预定义的毫秒数。我知道这可以简单地使用Handler来完成,但我不想使用它。我尝试过:Observable.just(getView().setAttachments(attachments)).delay(50,TimeUnit.MILLISECONDS);但是,有一个编译错误,即:Observable.just(java.lang.Void)cannotbeappliedto(void)还有别的办法吗?我不想使用Handler的原因是代码是在Presenter(MVP模式)中定义的,我不想在仅Java类中使