0

在三星 Galaxy Tab 10.1" (Android 3.1) 上运行下面的简单测试活动时,在 TestActivity2 启动之前,我看到主屏幕背景短暂闪烁。

没有看到此闪存
- 在没有 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET 的情况下
运行时 - 在运行 Android 2.3 的 Galaxy Tab 7 上运行时

知道是什么导致了这种闪光以及如何避免它吗?

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 时,我注意到以下差异。

使用 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

... INFO/SurfaceFlinger(223): id=71 已删除 com.zappware.test/com.zappware.test.TestActivity1 idx=2 地图大小=3

没有 FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET

... INFO/SurfaceFlinger(223): id=75 已删除 com.zappware.test/com.zappware.test.TestActivity1 idx=3 地图大小=3

也许这可以帮助?

4

1 回答 1

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);
}
于 2012-01-03T21:17:29.723 回答