2010-08-25 3 views
3

Я создаю классное приложение для дома на Android.Создание вторых ярлыков в Launcher

Поскольку это домашнее приложение, я не хочу, чтобы она появилась в Launcher в списке всех приложений.

Это довольно просто, но теперь я хотел бы, чтобы настройки этого приложения отображались. Итак, я создал предпочтения моего приложения таким образом, в манифесте:

<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> 

Это работает довольно хорошо, и у меня есть дополнительный значок в Launcher!

Единственная проблема в том, что ничего не происходит, когда я нажимаю на значок. Поэтому, я могу запустить свои предпочтения из приложения:

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); 

Итак, почему же ярлык в пусковой установке совершенно бесполезно и ничего не запустить?

Больше информации здесь:

Log когда я запускаю из приложения (настройки запускаются, работали безотказно):

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); 

} 
} 

ответ

1

Просто что-то нашел! (И кстати, что лучшая процедура, чтобы использовать, когда я нашел ответ на свой вопрос я должен сам ответить здесь ..?)

я должен был использовать, что в манифесте:

 <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> 

Это работает очень хорошо!

+0

Ответ на вопрос: – Falmarri