9

2つのアクティビティがあるアプリがあります。最初のボタンには、2番目のボタンを開く単一のボタンが表示されます。

これが最初のもののマニフェスト定義です:

<activity
    android:name="com.example.buttonexample.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

2番目のアクティビティ:

<activity
    android:name="com.example.buttonexample.MainActivity2"
    android:label="@string/title_activity_main_activity2" android:theme="@android:style/Theme.Translucent">
</activity>

2番目のアクティビティを起動する方法は次のとおりです(最初のアクティビティのボタンのOnClickListenerを介して):

public void startSecondActivityClick(View v) {
   Intent startActivity2 = new Intent(this, MainActivity2.class);
   startActivity(startActivity2);
}

これは問題なく機能しますが、ホームとフォアグラウンドを押してアプリをバックグラウンドにすると、アプリは正常に機能します。私は、最初の活動が継続的にそれ自体を作成/破壊していることに気づいています。onDestoryメソッドにコードを入れて静的intをインクリメントすることで、これを確認しました。

private static int count = 0;

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

}

protected void onDestroy() {
    super.onDestroy();
    Log.i("MainActivity", String.format("Destroyed, %d", count));
}

また、半透明のテーマを削除すると、これが修正されるように見えることにも気づきました。私の質問は、半透明または同様のものにする方法はありますが、再起動しない方法はありますか?また、なぜこれが起こるのか興味があります。私はこれをGalaxySIIIの4.0.1ICSでテストしています。

4

1 に答える 1

0

掘り下げた後、なぜこれが起こっているのかを理解することができました。誰かが開発者向けオプションの 1 つ、「アクティビティを保持しない」をオンにしました。これをオフにすると、これは発生しなくなりました。ほとんどの人はおそらくその設定をしていないので、これは本番環境ではあまり頻繁に発生しないと思います。これは、ほとんどの携帯電話の設定 -> "開発者向けオプション" にあります。

于 2013-03-08T21:42:49.660 に答える