2015-04-27 39 views
1

例如,當我從屏幕(activity)加載到相同的Task stack中的應用程序中打開F acebook Login page在同一個任務中打開另一個應用程序的活動?

以同樣的方式,我想從我的應用程序中打開另一個應用程序的活動,以加載到同一個任務堆棧中,而不是啓動新任務。

通常,當我們訪問其他應用程序時,我們使用「FLAG_ACTIVITY_NEW_TASK」,這會創建新的任務。

但是,如何在同一個任務中加載其他應用程序的活動?

有針對性的新的應用程序是不是Android的內置Intent activities(如email, contact, call等)

我試圖從一個應用程序中打開我的另一個應用程序的活動。

UPDATE

我想我不能讓它不夠清晰。我在設備中安裝了應用程序A和應用程序B,這兩個應用程序都由我製作,而不是系統構建的。現在我想從應用程序A的活動中訪問應用程序B的main_activity,並仍保留在同一個任務中。謝謝

回答

2

但我如何加載其他應用程序的活動在同一個任務?

首先,請勿使用FLAG_ACTIVITY_NEW_TASK。這說不想要一個新的任務。

其次,確保您開始的活動沒有taskAffinitylaunchMode這會干擾此操作。

因此,例如,startActivity(new Intent(android.provider.Settings.ACTION_DATE_SETTINGS));將在您的任務中啓動日期和時間設置屏幕。大多數設置屏幕都有一個taskAffinity,這仍然會在單獨的任務中結束。

+0

你能再次檢查更新,請...?我們如何刪除taskAffinity? – Shasi

+0

@Shasi:引用[android:taskAffinity'的文檔](http://developer.android.com/guide/topics/manifest/activity-element.html#aff):「要指定該活動沒有任何任務的親和力,將其設置爲空字符串。「 – CommonsWare

0

爲inbulit郵件應用程序:

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("message/rfc822"); 
intent.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
intent.putExtra(Intent.EXTRA_SUBJECT, "Subject"); 
intent.putExtra(Intent.EXTRA_TEXT , "Content"); 
try { 
    startActivity(Intent.createChooser(intent, "Send mail...")); 
} catch (android.content.ActivityNotFoundException ex) { 
    Toast.makeText(MyActivity.this, "No email clients installed.", Toast.LENGTH_SHORT).show(); 
} 
+0

我不打算用意圖打開內置應用程序。我通常試圖從我的另一個應用程序中打開一個應用程序,都是我的應用程序。 – Shasi

+0

好吧,我不明白你的問題,此外我可以建議你,可以檢查這個鏈接http://hmkcode.com/android-start-another-activity-of-another-application/ –

相關問題