2011-03-02 10 views
1

実行時にアプリケーションの最初の有効性を設定する方法はありますか?実行時にアプリケーションの入力アクティビティを設定するにはどうすればよいですか?

初めての起動かどうかによって、アプリケーションに異なる入力アクティビティが表示されます。つまり、次に何が起こるかを決める活動をすばやく見ることができますが、合理的なアプローチのようには思えません。

私を助けることができますか?

+0

なぜそれは合理的なアプローチではありませんか?本物の好奇心は、私はちょうどなぜあなたはそれを考えるのだろうかと思っています。 –

答えて

5

実行時にこれを行う方法はありません。しかし、あなたが行うことができるのは、android.intent.action.MAINのインテントフィルターとして設定された軽量デリゲートアクティビティーです。これは、決定した条件に基づいて別のアクティビティーを開始します。このアクティビティの属性をandroid:theme="@android:style/Theme.Translucent"に設定すると、表示されないようにすることができますが、すぐに決定を処理して消滅させることができます。おそらく、属性android:noHistory="true"を設定して、別のアクティビティがスタックの一番上にプッシュされると、アクティビティがスタックから削除されていることを確認することもできます。 AlreadyStartedOnceActivityのonResumeメソッドで

+2

デリゲートアクティビティの 'onStart'でこれを行い、' startActivity'の直後に 'finish'をコールすると、テーマまたは履歴なし属性を設定する必要はありません。 –

+0

4.0以上のバージョンで開発している場合は、 'android:theme =" @ android:style/Theme.Translucent "'を使用することはお勧めしません。 'onCreate()'で 'finish()'を呼び出さずに行うと、アプリケーション名を持つ古い2.xのトップフレームが表示されます。 4.0以上では、代わりに 'android:theme =" @ android:style/Theme.NoDisplay "を使用してください。 – derekstavis

0

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
if(prefs.getBoolean("run-once", false)) 
{ 
    startActivity(intentToStartOneTimeActivity); 
    finish(); 
} 

そのように、あなたが起動活動として、あなたの「メイン」の活動を離れ、しかし、あなたがする必要がある場合、そこからワンタイムアクティビティを起動することができます。

関連する問題