2011-05-05 53 views
1

現在我的問題: 我寫了一個函數把一個應用程序在前臺,它工作正常,爲每一個應用程序,除了一個:發射器(com.android.launcher)。切換到家庭(以發射)

功能:

public void switchTo(String activityName) 
{ 
    Intent intent=new Intent(Intent.ACTION_MAIN);  
    try 
    { 
     //Specials cases (Contacts and launcher app) 
     if(activityName.equalsIgnoreCase("com.android.contacts")) 
     { 
      intent.setComponent(new ComponentName("com.android.contacts","com.android.contacts.DialtactsContactsEntryActivity")); 
     } 
     else 
     { 
      intent=this.packageManager.getLaunchIntentForPackage(activityName); 
     } 

     if(null != intent) 
     { 
      intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
      this.activity.startActivity(intent); 
      this.activity.finish(); 
     } 

    } 
    catch (ActivityNotFoundException e) 
    { 
     e.printStackTrace(); 
    } 
} 

當「activityName」等於「com.android.launcher」,沒有任何反應,甚至沒有一個例外,但函數被調用(我用「日誌」驗證功能)。

那麼你有什麼想法的錯誤是在哪裏?

回答

5

我終於找到了答案,我的問題,我只需要添加的情況下,如果進程名是「com.android.launcher」,並把在這種情況下:

intent.addCategory(Intent.CATEGORY_HOME);

感謝您的閱讀我的問題,我希望這可以幫助這裏的一些人!