2017-03-07 78 views
0

執行我的應用程序下面的代碼Activity之後被關閉,但直到組件名稱,代碼工作正常:我想打開其他特定活動

PackageManager pm = getPackageManager(); 
PackageInfo packageInfo = pm.getPackageInfo("com.package.address",PackageManager.GET_ACTIVITIES); 
ActivityInfo[] activitiesInfos = packageInfo.activities; 
ActivityInfo activityToLaunch=activitiesInfos[0]; //<< activity which want enter code here to enter code herestart 

// Create ComponentName object using packageName and activity name 
ComponentName compName=new ComponentName(
            activityToLaunch.applicationInfo.packageName, 
            activityToLaunch.name); 
Intent intent=new Intent(Intent.ACTION_MAIN); 
intent.addCategory(Intent.CATEGORY_LAUNCHER); 
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
intent.setComponent(compName); 
startActivity(intent); 

同時調試來,直到startActivity(intent)光標但這種活動之後將終止

+0

您正在嘗試啓動另一個應用程序? –

+0

如果嘗試啓動另一個應用程序,將會拋出SecurityException;否則我沒有問題。這是你想要的(啓動另一個應用程序)? @NishanKhadka – Alan

+0

不,我問你是否試圖啓動另一個應用程序的特定活動。 –

回答

2

好吧,請嘗試以下:

1)如果你只是想啓動另一個應用程序的啓動活動:

Intent intent = getPackageManager().getLaunchIntentForPackage("com.package.address"); 
if (intent != null) { 
    // if package is found; otherwise null 
    startActivity(intent); 
} 

2)如果你想啓動一個特定的活動(注意:你需要知道它的全名,它應該在AndroidManifest設置android:exported="true"

Intent intent = new Intent(); 
// xxx and yyy representing its sub package if any 
intent.setComponent(new ComponentName("com.package.address", "com.package.address.xxx.yyy.FullActivityName")); 
startActivity(intent); 
+0

大聲笑......那麼,這可能會幫助發佈這個問題的人。 –

相關問題