Вопрос

Я создаю классное домашнее приложение в 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