0

ここでは、BrowserActivity に URL を表示しています。サイトを開いた後、戻る必要がありますが、ここではリロードしています。私のURLでは別のURLが開いているため、私のURLは正しいだけです。戻るボタンを 1 回押してアクティビティに戻る方法を教えてください。戻るボタンを 2 回押すと、正しく機能します (前のアクティビティに戻ることを意味します)。以下にコードを投稿しました。そのURLのみで試してください..

btn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View arg0) {
    Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
    myWebLink.setComponent(new ComponentName("com.android.browser","com.android.browser.BrowserActivity"));
    myWebLink.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    myWebLink.setData(Uri.parse("http://www.abcd.com"));
    startActivity(myWebLink);}});
4

3 に答える 3

0

アクセスしているWebサイトは次のとおりです。

http://www.bigticketshop.co.uk/clickout.aspx?did=326177&mid=101&d=21-04-2013&e=A Gala for St George&po=2

にリダイレクトされています:

http://www.seatwave.com/a-gala-for-st-george-tickets/royal-albert-hall-tickets/21-april-2013/perf/633910?affid=0316

したがって、戻るボタンを押すと、古いWebサイトに戻り、新しいWebサイトにリダイレクトされるため、ループになります。

正常に動作している新しいWebサイトを直接試してください。

btn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View arg0) {
    Intent myWebLink = new Intent(android.content.Intent.ACTION_VIEW);
    myWebLink.setComponent(new ComponentName("com.android.browser","com.android.browser.BrowserActivity"));
    myWebLink.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    myWebLink.setData(Uri.parse("http://www.seatwave.com/a-gala-for-st-george-tickets/royal-albert-hall-tickets/21-april-2013/perf/633910?affid=0316"));
    startActivity(myWebLink);}});
于 2013-02-05T10:57:18.293 に答える
0

Android アクティビティは、アクティビティ スタックに格納されます。以前の活動に戻ることには、2 つの意味があります。

  1. startActivityForResultを使用して別のアクティビティから新しいアクティビティを開きました。その場合、コードからfinishActivity()関数を呼び出すだけで、前のアクティビティに戻ることができます。

  2. アクティビティ スタックを追跡します。インテントで新しいアクティビティを開始するときはいつでも、FLAG_ACTIVITY_REORDER_TO_FRONT や FLAG_ACTIVITY_PREVIOUS_IS_TOP などのインテント フラグを指定できます。これを使用して、アプリケーション内のアクティビティ間をシャッフルできます。しかし、それらをあまり使用していません。ここでフラグを見てください:http://developer.android.com/reference/android/content/Intent.html

于 2013-02-05T09:34:00.880 に答える
0

これを使って:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) 
{
  if(event.getAction() == KeyEvent.ACTION_DOWN)
  {
    switch(keyCode)
    {
      case KeyEvent.KEYCODE_BACK:
        if(myWebLink.canGoBack() == true)
        {
          myWebLink.goBack();
        }
        return true;
    }
  }
  return super.onKeyDown(keyCode, event);
}
于 2013-02-05T09:18:26.790 に答える