2016-09-22 22 views
1

クロスウォークを使用するアプリケーションがあります。私は2つの活動でそれを使用します。戻るボタンを押してもアクティビティが終了しない

  1. このアクティビティでは、選択可能なアイテムのリストを示し、選択されたときに別のアクティビティを開始するクロスウォークビューがあります。
  2. この新しいアクティビティでは、以前のアクティビティから選択したアイテムを実行する別のクロスウォークビューを開きます。

私が抱えている問題は、2番目のアクティビティで戻るボタンを押すと黒い画面に戻るときです。戻るボタンをもう一度押すと、アクティビティが終了します。

黒い画面に戻るのではなく、アクティビティを閉じるにはどうすればよいですか?これはほんの少しの項目すべてで起こるわけではなく、ページリダイレクトがクロスウォークで起こっていると私は思っています。そのため、前の画面に戻るだけです。ここで

は活動です:

package com.gamesmart.gamesmart; 

import android.app.Activity; 
import android.content.Intent; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 

import org.xwalk.core.XWalkPreferences; 
import org.xwalk.core.XWalkView; 

public class Play extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_play); 

     Intent intent = getIntent(); 
     String url = intent.getStringExtra("url"); 

     XWalkView xWalkWebView = (XWalkView)findViewById(R.id.xwalkWebViewPlay); 

     // Turn on debugging if we are in DEBUG mode 
     if (BuildConfig.DEBUG) { 
      XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true); 
     } 

     // Load the url 
     xWalkWebView.load(url, null); 
    } 

    @Override 
    public void onBackPressed(){ 
     finish(); 
    } 
} 

私は私のonBackPressedは、それがどうあるべきかをやっているとは思わない...

答えて

3

あなただけ

super.onBackPressed(); 

を忘れてしまいました以下のコードを使用してください

@Override 
public void onBackPressed() { 
    super.onBackPressed(); 
} 
+0

を試してみてください。 –

+0

最初のアクティビティから 'Play'アクティビティを開始した後、' finish() 'つまり' startActivity(...);を呼び出します。 finish() ' –

+0

私もそれをやっていますが、まだ閉じません。クロスウォークがブラウザの履歴のナビゲーションに戻るボタンを引き継ぐことができますか? –

0

たぶん、あなたはあなたのonBackPressed()super methodを呼び出すようにしてください、またはあなたが戻って、以前の活動に行きたい場合は、あなたのActivityこのようなあなたのonBackPressed()フロントに他の活動を持参し、その後、終了する。

public void onBackPressed() { 
    Intent main = new Intent(this, YourClass.class); 
    main.putFlags(Intent.ACTIVITY_BROUGHT_TO_FRONT); // Or something like this, I dont really remember the flag name 
    startActivity(main); 
    super.onBackPressed(); 
} 
1

私はこれを使用する場合は、バック押すと、それはまだ黒い画面に行くと、私は再び押す必要があり、この

public void onBackPressed(){ 
     Intent a = new Intent(Intent.ACTION_MAIN); 
     a.addCategory(Intent.CATEGORY_HOME); 
     a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(a); 

    } 
関連する問題