1

ボタンをクリックしてアプリを閉じようとしていたので、ホームページで次のコードを使用します

closebtn.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                finish();
            }
        });

ホームページpage5のクリックから開きます。close button

b5.setOnClickListener(new OnClickListener() 
        {

            @Override
            public void onClick(View v) 
            {
                // TODO Auto-generated method stub
                Intent i =new Intent(Page5.this, FirstPage.class);
                startActivity(i);
            }
        });

そのため、ホームページの閉じるボタンをクリックすると、アプリを閉じる代わりに再びページ5に移動します。

問題を見つけるのを手伝ってください

前もって感謝します。

4

4 に答える 4

2

finish()アプリを閉じません。現在のアクティビティを閉じるだけです。したがって、アクティビティを終了した後、自然な動作はアクティビティ スタックの最後のアクティビティに戻ります。

だから今、あなたには複数のオプションがあります

  1. 次の活動を始める前に前の活動を終える
  2. start activityforresult で 2 番目のアクティビティを開始します。終了したら、onActivityResult でキャッチして終了できます。

他の可能なオプションもあります。

于 2013-06-25T08:21:04.383 に答える
1

アプリを終了するための次のコードを追加します。

closebtn.setOnClickListener(new OnClickListener() 
{

       @Override
       public void onClick(View v) 
       {
           // TODO Auto-generated method stub

           Intent startMain = new Intent(Intent.ACTION_MAIN);
           startMain.addCategory(Intent.CATEGORY_HOME);
           startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
           startMain.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
           startActivity(startMain);
       }
});

閉じるボタンをクリックしたときにこのコードを使用すると、デバイスのホーム画面に直接リダイレクトされます。

于 2013-06-25T09:22:18.997 に答える
1

これを試して:

 b5.setOnClickListener(new OnClickListener() 
            {

                @Override
                public void onClick(View v) 
                {
                    // TODO Auto-generated method stub
                    Intent i =new Intent(Page5.this, FirstPage.class);
                    startActivity(i);
                    Page5.this.finish();
                }
            });
于 2013-06-25T08:20:02.463 に答える
0

トップアクティビティをクリアする必要があります。このようなことを試すことができるかもしれません

私たちのアプリケーションに多数のアクティビティ (たとえば 10 個) があり、このアクティビティから直接終了する必要があるとします。できることは、インテントを作成し、ルート アクティビティに移動して、インテントに次のようにフラグを設定することです。

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

また、ブール値のようなものをインテントに追加します

intent.putExtra("EXIT", true);

次に、ルート アクティビティで、ブール値の値を確認し、その呼び出しによると、ルート アクティビティの onCreate() で finish() を呼び出します。

if (getIntent().getBooleanExtra("EXIT", false)) {
 finish();
}
于 2013-06-25T08:22:10.777 に答える