0
私はクロスウォークで使用しているjavascriptインターフェイスを持っていて、closeActivity
メソッドがあります。インタフェースは、次のようになります。ここでは Androidのアクティビティが完全に閉じない
public class JavaScriptInterface {
private Activity activity;
public JavaScriptInterface(Activity activity) {
this.activity = activity;
}
/**
* Starts a new activity
* @param page
* @return
*/
@JavascriptInterface
public boolean openActivity(String page){
if(isConnected()) {
Intent intent = new Intent(activity, GenericActivity.class);
intent.putExtra("page", page);
activity.startActivity(intent);
return true;
}
return false;
}
/**
* Closes the current activity
*/
@JavascriptInterface
public void closeActivity(){
activity.finish();
}
}
が起動されますアクティビティです:私は
closeActivity
を呼び出すとき
public class GenericActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_generic);
Intent intent = getIntent();
String page = intent.getStringExtra("page");
XWalkView xWalkWebView = (XWalkView)findViewById(R.id.xwalkWebView);
// Turn on debugging if we are in DEBUG mode
if (BuildConfig.DEBUG) {
XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
xWalkWebView.clearCache(true);
}
// Add the connector to talk to/from javascript
JavaScriptInterface i = new JavaScriptInterface(this);
xWalkWebView.addJavascriptInterface(i, "jsConnector");
// Load the base file
xWalkWebView.loadAppFromManifest("file:///android_asset/manifest.json", null);
xWalkWebView.loadUrl("file:///android_asset/" + page + ".html", null);
}
}
が活動を視覚的に消えるが、クロムインスペクタ(chrome://inspect)で、私はまだすることができクロスウォークwebview
を参照してください。なぜそれがまだそこにあり、どうすればそれを閉じることができますか?
ないことが起こっている理由は、あまりにも確認してください。 GenericActivity内のonDestroy()をオーバーライドして、そのメソッド内で自分自身を削除/非表示にすることができます。 – MikeOscarEcho
これを行うと、それはまだインスペクタに表示されます。 –