我有一个关于postDelayed的问题。 android文档说它将runnable添加到队列中,并在UI线程中运行。这是什么意思?Android - postDelayed和线程问题
因此,例如,我用来创建我的布局的同一个线程用于运行Runnable?
如果我希望它作为一个独立的线程执行,而我正在创建我的布局并定义我的活动,该怎么办?
感谢 克里斯
我有一个关于postDelayed的问题。 android文档说它将runnable添加到队列中,并在UI线程中运行。这是什么意思?Android - postDelayed和线程问题
因此,例如,我用来创建我的布局的同一个线程用于运行Runnable?
如果我希望它作为一个独立的线程执行,而我正在创建我的布局并定义我的活动,该怎么办?
感谢 克里斯
恭喜!你找到了一个解决方案不止一个的地方。
处理程序和PostDelayed可以是定期调用前台活动的很好的轻量级方法。即使这些消息被重用。这些用于Snake示例程序(Snake/SnakeView.java/sleep())以使蛇移动。它以'发送消息延迟500ms'的方式运行,在500毫秒内将其捕获到HandleMessage(处理程序的默认值),移动,然后再发送它。即使这个消息是通过acquireMessage()重用的。我已经使用这些按钮进行按钮更新,同时按下它。
线程稍重。您可以将这些用于背景或已经用于运行线程的位置。制作一个'新线程(aRunnable).start()'。我没有在Android上使用过它们。
使用StartActivityForResult()启动Intent,并使用OnActivityResult捕获结果以生成标准RPC。请参阅记事本示例的第2步以获取更多信息。
调查更多的意图启动不同的场景。我发现把你的'创建和启动意图'分成不同的功能有助于维护和调试。
祝你好运!
是将在UI线程上运行。
如果你想运行一个后台线程,然后按照正常的方式。
Thread t = new Thread(new Runnable(){});
t.start()
但是如果你想在所有的改变反应的东西,一个后台线程可能会做的UI,那么你可以使用postDelayed()。
对UI的任何更改都必须在主UI线程上完成。