1

2 つのアクティビティがありますが、アプリケーションの開始時に条件を適用したいと考えています。一方が true の場合は最初のアクティビティを開始し、そうでない場合は 2 番目のアクティビティを開始します。現在、いくつかの歓迎すべきものを表示し、バックグラウンドで値を調べる 3 番目のアクティビティを開始して、適切なアクティビティが呼び出されるようにしています。これを行うには、標準的な方法が必要だと思います。平和。

4

2 に答える 2

2

Activity状態をチェックするのに 3 分の 1 は必要ありません。

MAIN/LAUNCHERActivityが最初に実行することとしてonCreate(...)(ただし を呼び出した後にsuper.onCreate(...)) 状態をチェックするだけの場合、続行するかstartActivity(...)、もう一方Activityを呼び出して、すぐfinish()に自己終了を呼び出すことができます。

そうすれば、条件によって 2 番目を開始する必要がある場合、最初のものActivityが表示されることはありませんActivity

例..

public class FirstActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Don't even set the content view at this point
        // we want to be invisible for the moment

        // Pseudo-code check for condition
        if (!runMe) {
            Intent i = new Intent(this, SecondActivity.class);
            startActivity(i);
            finish();
        }
        else {
            // Continue as normal
            setContentView(R.layout.main);
            ...
        }
    }
}
于 2012-08-25T19:37:32.230 に答える
2

マニフェストで開始アクティビティを指定する必要があるため、いつでも最初のアクティビティを開始し、条件を確認して、onCreate()2 番目のアクティビティを開始する必要がある場合は、2 番目のアクティビティを開始して最初のアクティビティを呼び出すことができますfinish()

それ以外の場合は、通常、スプラッシュ アクティビティを使用して、起動時にすべての条件を確認します (これが現在の解決策です)。

于 2012-08-25T04:40:47.197 に答える