我的MainActivity打开一个Web视图。
当用户按下设备的后退按钮时,该命令会通过接口传递给javascript代码,该代码可以执行操作并返回“ 1”,或者不执行任何操作并返回“ 0”。
返回“ 0”时,应用程序进入后台。 该代码有效,但有时我会发现错误:
java.lang.NullPointerException:位于x.MainActivity.onBackPressed(未知来源:2)
这是MainActivity中的代码
@Override
public void onBackPressed() {
mWebInterface.signal.onBackPressed();
}
这是外部类中的代码:
public void onBackPressed( ) {
if (ready) {
mWebView.post(new Runnable() {
public void run() {
final String cmd = "event.signal.devicePressBack()";
mWebView.evaluateJavascript(cmd, new ValueCallback<String>(){
@Override
public void onReceiveValue(String s) {
if (s.equals("1")){
// javascript do something
}else{
mContext.moveTaskToBack(true);
}
}
});
}
});
}else{
mContext.moveTaskToBack(true);
}
}
1)可能是什么问题?
2)除了错误之外,如果使用Listener进行管理,与javascript对话的代码会更好?