草庐IT

RUNNABLE

全部标签

java - Android - 检查 Runnable 是否正在运行

我想检查Runnable在我的服务中是否存在。我有办法做到这一点吗?privateRunnablesendData=newRunnable(){publicvoidrun(){try{superToast.show();screenOn();vibrate();mHandler.postDelayed(sendData,time);}catch(Exceptione){e.printStackTrace();}}}; 最佳答案 您可以创建一个boolean变量并检查其值是否正在运行booleanisRunning=false;pri

android - 在实现 Runnable 的类中获取上下文

我在android中有一个应用程序,它位于与UI(实现Runnable)不同的线程中我收到一些数据(纬度和经度形式的GPS数据)并从这些数据中我想通过将地址传递给Geocoder来找出正确的地址......之后Geocoder返回的地址我将其存储在数据库中:这是我做这些事情的方法:publicclassClientimplemetsRunnable{publicvoidrun(){GeocodermyLocation=newGeocoder(getApllicationContext,Locale.getDefault());}}但我在这里遇到错误:GeocodermyLocation

android - 在 Activity.runOnUiThread() 方法后返回一个值

是否可以在Activity.runOnUiThread()方法之后返回一个值。runOnUiThread(newRunnable(){@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubintvar=SOMETHING;//howtoreturnvarvalue.}});在此post我看到不可能在Runnable.run()方法之后返回一个值。但是如何使用(实现)另一个接口(interface),执行后返回一个值。希望大家都清楚。编辑可能会帮助别人。我使用@Zapl的解决方案,并在Callable类构造函数中传递一个参数,如下所

android - 如何在 onClick 中重置 postDelayed runnable 的时间?

我有一个从服务器填充的listView。在ListItem的onClick中,我显示一个按钮x秒,然后再次使其不可见。每次调用onClick时如何重置时间?这是我的listItemonClick:privatevoiddisplayInCallButton(){mButton.setEnabled(true);if(canDisplayInCallControlls){canDisplayInCallControlls=false;fadeInAnimation(mButton);mButton.setEnabled(true);mFrontView.postDelayed(newRu

android - 尝试读取字段 'android.view.View android.support.v7.widget.RecyclerView$ViewHolder.itemView'

我正在尝试延迟随机选择recyclerview项目。我需要在fragment加载后启动随机选择方法,无需任何用户交互,但出现以下错误。然后我把它放在ImageView上点击检查,但我再次遇到同样的异常。这里有人会告诉我我在哪里犯了错误,或者还有什么更好的方法可以实现这一点。下面是我的代码packagecom.apponative.bjja.fragments;importandroid.os.Bundle;importandroid.os.Handler;importandroid.support.annotation.Nullable;importandroid.support.v4

java - 为什么 run() 只被调用一次?

考虑这个类,AnimationThread:classAnimationThreadimplementsRunnable{publicvoidpause(){doAnimation=false;}publicvoiddoStart(){doAnimation=true;}@Overridepublicvoidrun(){//TODOAuto-generatedmethodstubif(doAnimation){//mycode}try{Thread.sleep(500);}catch(InterruptedExceptione){}}}现在我在Activity的onCreate中启动这

java - 如何实现可运行队列

我正在尝试实现一个可运行队列,以便在异步任务期间一个接一个地执行(这意味着队列中的下一个将在另一个完成后执行)。我写了一个管理器来管理这些可运行对象和本身就是可运行对象的任务。然后我得到异步任务中的第一个任务并运行它,希望它能通过队列运行,但是它最终只运行了第一个可运行对象两次。任何人都可以帮助我处理我一直在使用的代码或指出一个可能有帮助的示例吗?publicclassConnectionManager{publicstaticfinalintMAX_CONNECTIONS=15;privateArrayListactive=newArrayList();privateArrayLis

android - 如何启动/停止Runnable/Handler?

我正在尝试维护Web服务和Android应用程序之间的数据库同步。下面的代码可以正常工作,但我遇到了一些问题:每次我进入App的主页时,都会启动一个新的无限进程。过程永无止境任何人都可以按照我的意愿解释如何开始和停止这个过程吗?我希望此过程每5分钟运行一次,但只在应用程序打开时运行一次。publicvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);finalHandlerhandler=newHandler();finalRunn

android - 在 Handler 中执行所有预定的(postDelayed)runnables

我使用一个处理程序,它通过postDelayed(r,DELAY_TIME)发布一些Runnable,但我需要在发布之前执行所有Runnables通过postDelayed新建。有什么好的想法可以尽可能简单地实现这一目标吗?编辑:我想要的基本上是这样的:Runnabler=newRunnable(){//Dosomefancyaction};if(mHandler.runnablesScheduled){mHandler.flushAllScheduledRunnables();}mHandler.postDelayed(r,DELAY); 最佳答案

android - 为什么在 View 和处理程序上发布和取消可运行会导致不同的行为?

我一直在研究Runnable并且发现如果你postDelayed一个Runnable在View上然后删除回调将不起作用,但是如果您执行相同但发布Runnable在Handler上然后删除回调确实有效。为什么这行得通(Runnablerun()代码永远不会执行):Runnablerunnable=newRunnable(){@Overridepublicvoidrun(){//executesomecode}};Handlerhandler=newHandler();handler.postDelayed(runnable,10000);handler.removeCallbacks(r