0

Samsung Galaxy Tab 10.1 "(Android 3.1)で下のテスト動作を実行すると、 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
せずに実行している場合 - - 。TestActivity2は、このフラッシュは
見られない新しいアクティビティを開始したときに、ホーム画面の背景が2番目に分割されて表示されます

開始されたギャラクシータブ7" 上で動作しているときに、このフラッシュを引き起こしているもののAndroid 2.3

任意のアイデアを実行するとどのように私がすることができますそれを避ける?

public class TestActivity1 extends Activity 
{ 
    protected void onCreate(Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    TextView t = new TextView(this); 
    t.setText("TestActivity1"); 
    t.setOnClickListener(new View.OnClickListener() 
    { 

     @Override 
     public void onClick(View v) 
     { 
     //start TestActivity2 
     Intent intent = new Intent(getApplicationContext(), TestActivity2.class);   
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 
     startActivity(intent);   
     } 
    }); 
    setContentView(t); 
    } 

} 

テスト実行FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETととなしのLogCatを比較すると、私は次の違いに気づきました。 ID = 71を削除com.zappware.test/com.zappware.test.TestActivity1 IDX = 2マップサイズ= 3

:FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

... INFO/SurfaceFlingerの(223)で

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

なし

... INFO/SurfaceFlingerの(223):ID = 75を削除com.zappware.test/com.zappware.test.TestActivity1 IDX = 3マップサイズ= 3

おそらくこれが役立つでしょうか?

+0

なぜあなたが最初の場所でのフラグを使用しているIntent.FLAG_ACTIVITY_CLEAR_TOP –

+0

でTestActivity1を再起動するときにも同じことが起こりますか? XMLファイルを作成してコンテンツビューを設定しようとしましたか? – sfratini

+0

@sfratini:私はいくつかの詳細情報でアクティビティを開始するときにこのフラグを使用しています。ユーザーが自宅を押すと、この詳細ページに戻るのではなく、より一般的な概要アクティビティに戻るようにします。 –

答えて

0

さて、あなたはスタックをきれいにしているので、その理由が起こっているのです。戻るボタンの動作のオーバーライドを提案してもよろしいですか?

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

編集:

私はこのような何かに考えていました。あなたはこれを行うことができます2.0:で始まる

@Override 
public void onBackPressed() { 
Intent intent = new Intent(getApplicationContext(), MyActivity.class); 
startActivity(intent); 
} 
+0

実際にスタックに関連する可能性があります。しかし... FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETを使用すると、スタックはクリーニングされません。 Activity1からActivity2に行くと、Activity1はスタックに残ります。このフラグは、Activity2がアクティブなときにHOMEキーを押したときのみ有効です。FLAG_ACTIVITY_CLEAR_TOPを使用してActivity1からActivity1に移動したときもActivity1はスタックに残ります(その上にあるアクティビティのみが削除されるので、スタックは決して空ではありません) –

+0

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETを使用する目的は次のとおりです。 :ABCDアクティビティを開始し、FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESETでCとDが開始されたとします。 HOMEを押すと、スタックはA-Bにトリムされます。私はあなたの提案に満足しています(そして私はあなたの助けに感謝します)、バックボタンの動作を無効にしますが、これがなぜ役立つのか少し詳しく説明できますか? –

+0

まあ、あなたは、スタック上のものではなく特定のアクティビティに戻るようにしたいと言っています。戻るボタンの動作をオーバーライドすると、そのアクティビティでのみ行うことができ、すべてのアクティビティの通常の動作を維持できます。私の編集を参照してください。 – sfratini

関連する問題