2011-01-10 7 views
4

私のアプリが最初に開いたときに、ユーザに提示された最初のアクティビティは、設定オプションによって異なる場合があります。私はどのようにハードコードするアプリは、マニフェスト最初のAndroidアクティビティのヘルプ

MyFirstActivityが実行される最初のアクティビティクラスのクラス名です
<activity android:label="@string/app_name" android:name=".MyFirstActivity"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

でこのような何かを追加することによって実行されているときに実行される最初の活動を知っています。アプリケーションを初めて起動したときに最初に実行するアクティビティを、マニフェストでハードコードするのではなく、動的に選択するにはどうすればよいですか?

ありがとうございます!

+1

申し訳ありませんが、私の答えは役に立たないので、私はそれを削除しました。 –

答えて

9

オプション#1:onCreate()MyFirstActivityの場合は、startActivity()と入力してfinish()としてください。

オプション#2:LAUNCHER<intent-filter>でいくつかのアクティビティを定義します。最初の実行時(または必要に応じて)、適切な活動を有効にし、他の活動を無効にします。欠点:すべてのホームスクリーンランチャーがあなたの変更を検出するわけではないので、ランチャーを更新するために電話機の再起動が必要な場合があります。

オプション#3:これは問題ではないようにGUIを再設計します。

+0

私はあなたが順不同の活動を殺す可能性があるとは思わなかった。オプション1は、私がやろうとしていることに対してうまく動作するはずです。ありがとう! –

+0

私のアプリケーションでは、ユーザーがアプリケーションを「登録」した後に2つのアクティビティのいずれかが選択されます。これは一度だけ起こるので、オプション2は私にはうってつけです。また、ラベルやアイコンも変更できるという利点があります。 – Ralf

+2

これは簡単ですが、オプション#1の場合には、アプリケーション中にあなたの「MyFirstActivity」が表示されないようにしたい場合に役立ちます:あなたの 'MyFirstActivity extends Activity'を作成し、' android:theme = " @android:style/Theme.NoDisplay "そのマニフェストに"。 – Przemo

関連する問題