【发布时间】:2021-08-29 08:36:44
【问题描述】:
我正在开发移动网络应用程序。该应用程序将所有数据保存到 html5 localStorage 包括警报数据。由于设备重启后警报会被清除,所以我应该在重启后重新注册警报。
我试图在 BroadcastReceiver 的 onReceive 上找到访问 localStorage 的方法,但我做不到。有没有办法在“BOOT_COMPLETED”广播上调用javascript函数? 如果没有,我想我应该将数据保存到 SharedPreference。
public class DeviceBootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.d("DeviceBootReceiver", "DeviceBootReceiver.onReceive");
if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) {
// like this
MainActivity.this.getWebViewInterface().reRegisterAllAlarm();
}
}
}
public class WebViewInterface {
private Context mContext;
private WebView mWebView;
public WebViewInterface(Context context, WebView webView) {
mContext = context;
mWebView = webView;
}
public void reRegisterAllAlarm() {
mWebView.loadUrl("javascript:reRegisterAllAlarm()");
}
}
【问题讨论】: