2016-01-28 26 views
0

当所有绘图和其他任务完成后,主线程上运行的代码是什么?加载完成后,应用程序实际上没有其他任何东西可以处理。但它不能真的空闲否则它不能处理触摸事件。我认为应该有一个循环检查用户迭代,但我无法找到相关信息。
谢谢。在UI线程上运行什么?

+0

我同意你的观点。初始加载后,将会有一个无限循环来处理任何事件或用户交互。但我无法找到关于它的更多细节。 – Manish

回答

1

据我知道:

  • 在基本上说,AndroidOS总是监听用户的 交互,然后将其传递给活动应用程序。
  • 当你的应用程序运行,并在 应用堆栈的顶部(即意味着当前活跃的应用程序),有一些来自用户交互的时候,AndroidOS将接收并先问你的应用程序,do you want to handle this action?(用什么的榜样动作和坐标x =?,y =?)。如果你的应用程序的回答是ok, it's mine, let me handle it - 这意味着你的应用程序已经被实现来处理这个动作(它是触摸事件的监听器(点击,拖动,滑动...)),然后你的应用程序会照顾其余的。其他方面,如果你的应用程序表示否,这不是我的一部分,AndroidOS将继续询问堆栈中的其他应用程序,直到有应用程序说是。最后,如果没有应用程序说YES,AndroidOS将决定通过操作系统或忽略处理它。
  • 因此,要回答你的问题:

什么代码是在主线程上运行? - >无代码(无)

第二部分

加载完成后,应用程序实际上没有什么别的 处理。但它不可能真的很空闲,否则它不能处理触摸事件 。我认为应该有一个循环检查 用户迭代当所有的东西都已经加载 - >应用程序不会做任何事情,只是从AndroidOS的循环处理工作,然后如果有一个交互操作,AndroidOS会通知应用程序

0

如果你是除了主线程工作,然后,如果你想执行主线程中的任何行动,你应该写

runOnUiThread

+1

我知道如何在主线程中执行动作。我只是想知道当主线程闲置时发生了什么? – vincentzhou

相关问题