我正在一个项目中,我们需要使用WebView加载一个Activity,我们需要使用Angular加载一些HTML,但是我们需要在后台进行此活动,直到最终加载了angular的Activity / webview
有什么办法可以进行一项活动吗?
答案 0 :(得分:1)
Activity
进入后台时,它不再运行。您可以使用Service
进行后台任务,但不能使用Activity
进行后台任务。当angular已加载您所需的信息后,您就可以在Web视图中使用onResume()
的{{1}}方法了。
答案 1 :(得分:0)
WebView
通常在Activity
中。因此,Activity
所在的WebView
将一直存在,直到您将其杀死。除非您真的希望Activity
真正在后台运行,否则请使用Service
。
因为您可能需要使用Service
,所以我想您需要在BroadcastReceiver
内使用Service
。在BroadcastReceiver
内,您有一个自定义标签,使用sendBroadcast()
进行调用时,该标签将startActivity()
的Web视图/活动。我不保证WebView
的加载速度,因为您提到要预加载页面,但是可以做到。要减少WebView
的加载时间,必须在WebView
上启用缓存。
如果您真的想在后台按住WebView
(如果您可以这样做),我想会发生的另一个问题是内存泄漏。因为即使没有在屏幕上显示WebView
,也要一直保持活动状态,所以您可能不希望对其进行垃圾回收,这在android设备上将是一个非常糟糕的问题内存不足。在具有大量内存但没有300mb设备的设备上,您不会经常得到它。