Android活动中的主循环

时间:2015-01-25 14:41:58

标签: android android-activity

我在哪里可以找到android中的主循环或者我该如何实现它? 例如,如果我想在每次运行活动时增加x并测试x是否超过某个值,那么在没有主循环的情况下我该怎么做呢?

3 个答案:

答案 0 :(得分:2)

主线程运行Looper,它是一个事件调度程序(可能就是你所说的“主循环”)。 Looper负责调度事件和运行小块代码。您无法在每次传递时进入Looper,但您可以将小块代码发布到Looper以执行,并且您可以安排代码在特定时间运行。为此,您需要创建Handler,然后使用post()postAtTime()postDelayed()方法。您还可以将自己的“活动”排到Looper,方法是将“消息”发布到Handler。如果你这样做,你需要提供一些代码,这些代码一旦发送​​就会真正对消息做些什么。

请注意,主线程上的Looper也会调度所有生命周期事件(如onCreate()onResume()等)和所有UI处理,以便您不能对它进行任何长时间运行,否则你的用户界面会变得缓慢而且迟钝,Android可能会因为反应迟钝而杀死你的应用。如果您需要长时间运行的操作,则需要使用单独的后台线程(查看ServiceAsyncTask或只创建自己的Thread

答案 1 :(得分:0)

在android中没有主循环,但是每次活动打开时它都会通过抛出创建你可以做到每次调用onCreate时都会增加一个计数器,以获取有关活动生命周期的更多信息。{3 }}

答案 2 :(得分:0)

Android应用中的活动用于提供用户界面。用户使用“活动”等按钮,复选框,编辑字段与应用程序交互等内容进行交互。

A Service is an application component that can perform long-running 
operations in the background and does not provide a user interface

您可能需要一个" Service",它不应该有用户界面,而是为了执行App的后台工作而创建的。 例如:在音乐应用背景中播放歌曲。

在您的情况下,您应该创建一个服务,使用一个单独的线程来完成增量值的工作。检查" x"超过此线程中的值。