मान लें कि मेरे पास 2 एप्लिकेशन हैं, ए और बी।

मैं B से A. को लॉन्च करने के लिए PackageManager का उपयोग कर रहा हूं। हालांकि, मैं चाहता हूं कि जो भी पृष्ठ पर B है वह फिर से शुरू हो, यदि B पहले से ही चल रहा है यदि B नहीं चल रहा है, तो B का एक नया उदाहरण लॉन्च करना संभव है। इस तरह का प्रवाह या यह हमेशा एप्लिकेशन का एक नया उदाहरण लॉन्च करेगा।

0
Ophitect 1 पद 2015, 04:28

2 जवाब

सबसे बढ़िया उत्तर

इसे इस्तेमाल करो:

//Get package manager
PackageManager manager = getPackageManager();

//Get intent for application
Intent i = manager.getLaunchIntentForPackage("com.package.application");
i.addCategory(Intent.CATEGORY_LAUNCHER);

//Start new application
startActivity(i);

यह एप्लिकेशन के लॉन्चर को चलाने का प्रयास करेगा, अगर यह पहले से चल रहा है तो यह बस फिर से शुरू होगा।

1
TomTsagk 1 पद 2015, 02:00

मेरे अनुभव में, PackageManager#getLaunchIntentForPackage(String) एक इरादा पैदा करता है जो हमेशा एक नया कार्य शुरू करता है, कभी भी मौजूदा को नहीं उठाता है। यदि आप एक ही चीज़ देख रहे हैं, तो इसके बजाय यह करें:

public static Intent newLauncherIntent(final Context context) {
    final Intent intent = new Intent(context, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setAction(Intent.ACTION_MAIN);
    intent.addCategory(Intent.CATEGORY_LAUNCHER);
    return intent;
}

Intent.FLAG_ACTIVITY_NEW_TASK सेट करने के बावजूद, यह किसी भी मौजूदा कार्य को बढ़ाएगा।

0
Kevin Krumwiede 1 पद 2015, 02:24