草庐IT

runnables

全部标签

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类中使

java - 将 Thread/Runnable 实现从 Java 转换为 Kotlin

我有一个现有的Java类ThreadUtils,其方法every如下所示:publicclassThreadUtil{publicstaticThreadevery(intseconds,Runnabler){Threadt=newThread(()->{while(true){r.run();try{Thread.sleep(1000*seconds);}catch(InterruptedExceptione){return;}}});t.start();returnt;}}我正在尝试将其转换为Kotlin。我对Runnable关闭有点犹豫。这失败了一个错误的return:funev

java - 将 Thread/Runnable 实现从 Java 转换为 Kotlin

我有一个现有的Java类ThreadUtils,其方法every如下所示:publicclassThreadUtil{publicstaticThreadevery(intseconds,Runnabler){Threadt=newThread(()->{while(true){r.run();try{Thread.sleep(1000*seconds);}catch(InterruptedExceptione){return;}}});t.start();returnt;}}我正在尝试将其转换为Kotlin。我对Runnable关闭有点犹豫。这失败了一个错误的return:funev

android - 我在 new Thread(new Runnable()) 中看不到我的 Toast 消息

我在连接和断开连接后显示消息时遇到一点问题。我正在尝试按下我的连接按钮并在新线程中建立通信以获取toast消息:您已连接,如果我未连接以在异常中获取toast:您未连接。我尝试将新线程替换为runOnUiThread(newRunnable()/*butthenItunderline*/}).start();在我的代码末尾是一个错误。当我删除开始并运行应用程序时无法连接到我的服务器。我尝试了很多解决方案,但没有一个有效。如果你能帮助我,我将不胜感激。@OverridepublicvoidonClick(Viewv){newThread(newRunnable(){@Overridepu

java - 有没有办法让 Runnable 的 run() 抛出异常?

我在run()中调用的方法在实现Runnable的类中)旨在引发异常。但Java编译器不允许我这样做,并建议我用try/catch将其包围。问题在于,通过用try/catch包围它,我使特别run()无用。我确实想抛出那个异常。如果我为run()指定throws编译器本身会提示Exception与Runnable.run()中的throws子句不兼容。通常我完全可以不让run()抛出异常。但我有一个独特的情况,我必须拥有该功能。如何解决这个限制? 最佳答案 您可以使用Callable而是将其提交给ExecutorService并等待

java - 有没有办法让 Runnable 的 run() 抛出异常?

我在run()中调用的方法在实现Runnable的类中)旨在引发异常。但Java编译器不允许我这样做,并建议我用try/catch将其包围。问题在于,通过用try/catch包围它,我使特别run()无用。我确实想抛出那个异常。如果我为run()指定throws编译器本身会提示Exception与Runnable.run()中的throws子句不兼容。通常我完全可以不让run()抛出异常。但我有一个独特的情况,我必须拥有该功能。如何解决这个限制? 最佳答案 您可以使用Callable而是将其提交给ExecutorService并等待