代码之家  ›  专栏  ›  技术社区  ›  Waza_Be

在启动程序中创建第二个快捷方式

  •  3
  • Waza_Be  · 技术社区  · 14 年前

    因为这是一个家庭应用程序,我不希望她出现在发射器,在所有应用程序的列表。

    <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 回复  |  直到 7 年前
        1
  •  1
  •   Waza_Be    14 年前

    刚找到东西! (顺便问一下,当我找到自己问题的答案时,最好使用什么程序?我应该自己回答吗?这里……)

    我必须在舱单上使用它:

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

    效果不错!