2010-08-25 38 views
3

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

} 
} 

回答

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 2010-08-25 19:56:17