質問

Androidでクールなホームアプリケーションを作成しています。

これはホームアプリであるため、すべてのアプリケーションのリストに彼女がランチャーに表示されたくありません。

それは非常に簡単ですが、今ではこのアプリケーションの設定を表示したいと思います。そこで、マニフェストでこの方法でアプリケーションの設定を作成しました。

<activity android:name=".Preferences" android:label="@string/application_name">
<intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
</activity>

それはかなりうまく機能し、ランチャーに追加のアイコンがあります!

唯一の問題は、アイコンをクリックすると何も起こらないことです。したがって、アプリケーション内から設定を起動できます。

final Intent preferences = new Intent(Launcher.this,Preferences.class);        
menu.add(0, MENU_PREFERENCES, 0, R.string.application_name).setIcon(
        R.drawable.ic_menu_preferences).setAlphabeticShortcut('F').setIntent(
          preferences);

では、なぜランチャーのショートカットがまったく役に立たず、何も起動しないのですか?

ここでの詳細:

アプリケーション内から起動するときにログ(設定が起動され、完璧に機能します):

08-25 13:13:03.009: INFO/ActivityManager(63): Starting activity: Intent { cmp=com.myapp.home/.Preferences }

ランチャーから起動するとき(何も起こりません):

08-25 13:13:45.489: INFO/ActivityManager(63): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.myapp.home/.Preferences }

私の活動:

public class Preferences extends PreferenceActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  addPreferencesFromResource(R.xml.preferences);

 }
}
役に立ちましたか?

解決

ちょうど何かを見つけました! (そしてところで、自分の質問に対する答えを見つけたときに使用する最良の手順は何ですか?私は自分自身に答えるべきですか?

私はそれをマニフェストで使用しなければなりませんでした:

      <activity android:clearTaskOnLaunch="true" android:launchMode="singleTask" android:stateNotNeeded="true" (...other parameters...)>

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

それはかなりうまくいきます!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top