草庐IT

RUNNABLE

全部标签

android - 在继续异步之前等待 retrofit2 完成的最佳方法

我意识到有人问过类似的问题,但我是android的新手,发现答案有点困惑,因为它们的上下文略有不同。我查看了CountDownLatch以及使用线程,但不确定使用哪种方法。任何帮助将非常感激。我也尝试过对SharedPreferences使用apply()而不是commit()。我正在从LoginActivity进行2次retrofit2调用。我需要第一次调用的token才能在第二次调用中使用。我在第一次改造调用的onResponse方法中将token保存到sharedpreferences中的字符串。在我的第二次调用中,serverToken的值返回为应用程序之前运行时设置的toke

java - android中的套接字、线程和服务,如何让它们协同工作?

我遇到了线程和套接字的问题,我无法解决,如果有人能帮助我,我将不胜感激。有事实:我有一个服务类NetworkService,在这个类中我有一个Socket属性。我希望它在服务的整个生命周期内都处于连接状态。为了连接套接字,我在一个线程中进行,所以如果服务器必须超时,它不会阻塞我的UI线程。问题是,在我连接套接字的线程中,一切都很好,它已连接,我可以与我的服务器通信,一旦这个线程结束,我尝试重用套接字,在另一个线程中,我有错误消息Socket未连接。问题是:-套接字是否在线程结束时自动断开连接?-无论如何我们可以将一个值从被调用线程传回给调用者吗?非常感谢,这是我的代码publiccla

android - 在android中以慢动作播放视频

-我正在做一个需要慢动作播放视频的项目。-我很清楚Android不提供这些功能。-我发现PVPlayerEngine和libVLC具有这些功能,但我没有找到包含它们的任何教程或适当的文档在android项目中并使用它们。-所以我尝试通过使用Runnable和Handler来做到这一点,它成功地减慢了视频速度,但它们在播放过程中出现了抖动.publicclassMainActivityextendsActivity{VideoViewvx;Buttonmbutt;Handlerh;intcurr=0;@OverrideprotectedvoidonCreate(BundlesavedIn

java - UI 线程与其他线程之间的通信使用处理程序

UI线程和后台线程如何进行线程间通信?我想在这里使用通用处理程序概念来更新我的UI。我的概念如下newThread(newRunnable(){publicvoidrun(){while(mProgressStatus我想使用两个类,一个类包含主线程,另一个类包含后台线程,它们使用相同的处理程序。我该如何实现?我知道这很常见,但我发现很难准确实现。 最佳答案 如果您不想使用静态概念,则可以从参数传递任何内容。在下面的代码中,我实现了两个类。如您所问,我在两个线程类中都使用了公共(public)处理程序。我将处理程序h1作为Runna

java - onDestroy后是否可以调用回调方法?

在我的应用程序的最新版本中,一些用户遇到了我无法重现的崩溃。目前只有运行Lollipop的Samsung设备有问题,但这可能只是巧合。在分析了堆栈跟踪和相关代码之后,我认为我可能找到了罪魁祸首。为了检验我的假设,我将代码简化为以下代码fragment:publicclassTestActivityextendsAppCompatActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);Buttonb=newButton(this);b.setT

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

android - 从服务更新 UI(使用处理程序?)

当我收到通知时,我正尝试在FirstActivity中更新我的UI,但对runOnUiThread、Runnable和Handler感到困惑。这是我所拥有的:我正在运行FirstActivity和NotificationService。当NotificationService收到通知时,它会更新FirstActivityUI。我还有另一个服务AlarmService正在运行。第一个Activity@OverridepublicvoidonResume(){super.onResume();//someothercodeforalarmservice}通知服务//onreceivingn

java - handler.post(runnable) 是否启动一个新线程?

如果处理程序是在主UI线程中实例化的,带有Runnable的帖子是否会创建一个添加到消息队列的子线程,或者它只是在UI线程中运行?handler.post(newRunnable(){publicvoidrun(){//dostuff}}); 最佳答案 不,它不会创建新线程。它只是在你的处理程序附加到的线程上执行你的可运行对象,在这种情况下意味着你​​的UI线程 关于java-handler.post(runnable)是否启动一个新线程?,我们在StackOverflow上找到一个类似

android - 你如何循环线程?

我有一个包含可运行的线程。我需要它无限循环,除非被用户取消。我不知道该怎么做。非常感谢所有帮助。干杯。 最佳答案 Ineedthistoloopinfinitelyunlesscancelledbytheuser.显然,您可以轻松地在run()方法中添加一个循环:newThread(newRunnable(){publicvoidrun(){while(true){//dosomethingintheloop}}}).start();检查线程中断总是一个好主意:newThread(newRunnable(){publicvoidru