我有一个WebView
用于展示基于H5的应用
锁定手机后,音频仍在播放
我不想重新加载任何页面(因为这会使网页中的状态丢失)
我当前的解决方案是,每当用户暂停活动时,该应用就会像崩溃一样跳回到家中(不是)。
但是我想知道是否有更好的解决方案...
package com.example.rpg
import android.annotation.SuppressLint
import android.graphics.Color
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.webkit.WebView
import android.webkit.WebViewClient
import android.content.Intent
class MainActivity : AppCompatActivity() {
@SuppressLint("SetJavaScriptEnabled")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
window.decorView.systemUiVisibility =
(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
or View.SYSTEM_UI_FLAG_FULLSCREEN
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
window.navigationBarColor = Color.TRANSPARENT;
window.statusBarColor = Color.TRANSPARENT;
val webView: WebView = findViewById(R.id.myWebView)
val webSettings = webView.settings
webView.webViewClient = WebViewClient()
webSettings.javaScriptEnabled = true
webSettings.domStorageEnabled = true
webSettings.allowFileAccessFromFileURLs = true
if (savedInstanceState != null)
webView.restoreState(savedInstanceState)
else
webView.loadUrl("file:///android_asset/index.html")
}
override fun onSaveInstanceState(bundle: Bundle) {
super.onSaveInstanceState(bundle)
val webView: WebView = findViewById(R.id.myWebView)
webView.saveState(bundle)
val startMain = Intent(Intent.ACTION_MAIN)
startMain.addCategory(Intent.CATEGORY_HOME)
startMain.flags = Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(startMain)
}
override fun onBackPressed() {
}
}