我正在尝试将功能从iOS应用移植到Android应用。 UIKit是iOS视图编程框架,它提供了生命周期方法-viewDidAppear:animated:
,它在视图控制器出现后调用。
Android documentation for activity lifecycle management读取“活动的前景生命周期发生在调用onResume()
和调用onPause()
之间”,但是当我向活动{添加异步调度代码时} {1}},它会增加该活动的开始时间。
如何在活动在前台运行后开始一项活动然后做任意工作?
修改:我正在使用改编自Android "Controlling the Camera" training和camera API guide的代码;前者读到,“正如Android自己的相机应用程序所做的那样,推荐的访问相机的方法是在从onResume()
启动的单独线程上打开相机。”
我在onCreate()
:
onCreate()
答案 0 :(得分:1)
这是你在UI线程上处理后台任务的方法。
答案 1 :(得分:1)
一般情况下,Android模式是使用AsyncTask
或您自己的后台线程从活动onCreate
或onResume
启动异步工作(取决于您需要的工作类型)做)。
但是,如果你真的需要让视图处于可以渲染和测量的状态,你可以随时收听活动onAttachedToWindow
,当活动的窗口被创建时调用它。根视图已附加到它。请注意,这并不能保证您还绘制了它,因此如果您在该方法中运行大量工作,您仍然可以阻止UI线程并使用户体验不佳。所以,你仍然需要考虑在后台线程上开始你的工作。
答案 2 :(得分:0)
你可以试试这个,
步骤1:覆盖活动中的Tabselected方法
with gil:
步骤2:使用静态方法在片段中执行您想要的操作,
with nogil: