如何在后台运行活动?

时间:2019-01-22 08:53:31

标签: android android-activity webview background

我正在一个项目中,我们需要使用WebView加载一个Activity,我们需要使用Angular加载一些HTML,但是我们需要在后台进行此活动,直到最终加载了angular的Activity / webview

有什么办法可以进行一项活动吗?

2 个答案:

答案 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设备的设备上,您不会经常得到它。