Tag: android handler

何时使用handler.post()和何时新的线程()

我想知道什么时候应该使用handler.post(runnable); 什么时候应该使用new Thread(runnable).start(); 在Handler的开发者文档中提到: 导致Runnable r被添加到消息队列中。 runnable将在该处理程序所连接的线程上运行。 这是否意味着如果我写在Activity类的onCreate() : Handler handler = new Handler(); handler.post(runnable); 那么runnable将在一个单独的线程或在Activity的线程中被调用?

取消一个handler.postdelayed进程

我正在使用handler.postDelayed()在我的应用程序的下一个阶段发生之前创build一个等待期。 在等待期间,我正在显示一个带有进度条和取消button的对话框。 我的问题是我无法find一种方法来取消postdelayed任务之前的时间过去了 。

Android:什么时候应该使用Handler(),什么时候应该使用Thread?

当我需要asynchronous运行的东西,比如长时间运行的任务或者使用networking的逻辑,或者出于任何原因,启动一个新线程并运行它可以正常工作。 创build一个处理程序并运行它也可以。 有什么不同? 我应该什么时候使用每一个? 使用Handler而不是Thread的优点/原因是什么? PS。 – 为了这个问题,让我们忽略AsyncTask 。 – Handler().postDelayed用例对我来说很清楚,为了这个问题,我们假设我需要立即启动任务。

处理程序,MessageQueue,Looper,他们都运行在UI线程?

我试图围绕线程化头,而且我知道我可以使用Handler将消息/ runnables发布到MessageQueue ,然后由Looper并发送回Handler进行处理。 如果我发布到我的活动中的处理程序, Activity , Handler , MessageQueue和Looper都在UI线程上运行? 如果没有,请问有人能解释一下这一切吗? 🙂

与HandlerThread通信的示例

我想从GUI线程设置一个HandlerThread。 然后一段时间后,当在GUI上点击一个button时,它运行callHello(),然后发送一个消息给驻留在asynchronouslogging“Hello World”的非GUI线程上的HelloLogger对象。 我已经尝试了一些东西,一些块无限期地,一些永远不会收到消息,等等等等。下面的代码是或多或less如我所知,请有人可以修改它的工作? public class HandlerThreadExample { private MyHandlerThread mMyHandlerThread; private Looper mLooper; private Handler mHandler; public HandlerThreadExample(){ mMyHandlerThread = new MyHandlerThread(); mMyHandlerThread.start(); mLooper = mMyHandlerThread.getLooper(); } public void callHello() { mHandler.sendEmptyMessage(1); } private class MyHandlerThread extends HandlerThread { private HelloLogger mHelloLogger; private Handler mHandler; public MyHandlerThread() { super("The MyHandlerThread thread", HandlerThread.NORM_PRIORITY); } public […]

在另一个线程的主线程中运行代码

在一个android服务中,我创build了一些线程来完成一些后台任务。 我有一个情况,线程需要在主线程的消息队列上发布特定的任务,例如一个Runnable 。 有没有办法获得主线程的Handler ,并从我的其他线程发布Message /运行到它? 谢谢,

处理器VS AsyncTask与线程

我对Android中的Handlers , AsyncTask和Threads之间的区别有些困惑。 我已经阅读了很多博客和问题在这里stackoverflow。 Handler是后台线程,提供您与用户界面进行通信。 例如更新进度条应该通过Handler来完成。 使用处理程序,您具有MessagingQueues的优势,所以如果您想要安排消息或更新多个UI元素或具有重复任务。 AsyncTask是相似的,事实上它们使用Handler ,但不会在UI线程中运行,所以它对于获取数据很有用,比如获取Web服务。 稍后,您可以与UI进行交互。 但是Thread不能和UI交互,提供更多的“基本”线程,而且你会错过AsyncTask所有抽象。 不过,我想有一个套接字连接运行在一个服务。 这应该运行在一个处理程序或线程,甚至是一个AsyncTask ? UI交互不是必须的。 它在我使用的性能方面有所不同吗? 同时文件已经大大改善。

这个Handler类应该是静态的或者可能发生泄漏:IncomingHandler

我正在开发一个带有服务的Android 2.3.3应用程序。 我有这个服务与主要活动沟通: public class UDPListenerService extends Service { private static final String TAG = "UDPListenerService"; //private ThreadGroup myThreads = new ThreadGroup("UDPListenerServiceWorker"); private UDPListenerThread myThread; /** * Handler to communicate from WorkerThread to service. */ private Handler mServiceHandler; // Used to receive messages from the Activity final Messenger inMessenger = new Messenger(new IncomingHandler()); // Use […]