6

क्या ऐप को एकाधिक उदाहरण चलाने से रोकने का कोई तरीका है? मैंने मैनिफेस्ट में भी एक उदाहरण की कोशिश की है लेकिन सफल नहीं हुआ।किटकैट एंड्रॉइड में एक ही ऐप के एकाधिक इंस्टेंस चल रहे हैं

मैंने फेसबुक दोस्तों को लाने के लिए एक डेमो ऐप बनाया है। यह 4.2.2 और अन्य में अच्छा काम करता है लेकिन किटकैट 4.4.2 में लॉगिन के बाद जब मैं दोस्तों को फेंक देता हूं तो यह दुर्घटनाग्रस्त हो जाता है और डीडीएमएस ऐप में एक ही ऐप के कई उदाहरण चलते हैं।

क्या कोई मेरी मदद कर सकता है या समस्या का मार्गदर्शन कर सकता है?

यहाँ मैनिफ़ेस्ट फ़ाइल

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example" 
android:versionCode="1" 
android:versionName="1.0" > 

<uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="18" /> 


<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 


<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" 
    android:name="com.example.MyApplication" > 


    <activity 
     android:name=".Splash" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

    <activity 
     android:name="com.example.ui.newHome" 
     android:screenOrientation="portrait" /> 


    <activity 
     android:name="com.example.ui.FriendsList" 
     android:screenOrientation="portrait" /> 


    <activity 
     android:name="com.facebook.LoginActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.Translucent.NoTitleBar" /> 

    <meta-data 
     android:name="com.facebook.sdk.ApplicationId" 
     android:value="@string/app_id" /> 
</application> 

+1

कोशिश 'एंड्रॉयड: launchMode =" singleTask "' में अपनी activty के लिए अपने प्रकट –

+0

मैं इसके साथ की कोशिश की है भी लेकिन नहीं करता काम किटकैट में इस मुद्दे का सामना करना पड़ रहा केवल – Amish

+0

एप्लिकेशन का हमेशा एक उदाहरण होता है। किसी एप्लिकेशन के लिए * गतिविधि * के एक से अधिक उदाहरण हो सकते हैं। – CommonsWare

उत्तर

0

onCreate

if(!isTaskRoot()){ 
      finish(); 
      return; 
     } 

में लांचर गतिविधि में निम्नलिखित का प्रयास करें यह वही आवेदन के कई उदाहरण पाएगा है।

+0

में आपकी गतिविधि में आपको – Proverbio

+0

ऐसा करने की आवश्यकता नहीं है, यह आपके ऐप का एक उदाहरण सुनिश्चित करता है और मुझे यकीन है कि सवाल केवल इसके बारे में था। यही है ना? –

+0

एंड्रॉइड फ्रेमवर्क उस संग्रह को संग्रहीत करने का एक तरीका प्रदान करता है, जिसमें कोड की एक पंक्ति की भी आवश्यकता नहीं होती है। – Proverbio

1

आपको आधिकारिक दस्तावेज मोड = "सिंगल टास्क" या मोड = "सिंगल इंस्टेंस" के अनुसार उपयोग करना चाहिए।

singleTask

प्रणाली एक नया कार्य और मार्गों इसे करने के लिए आशय की जड़ में गतिविधि पैदा करता है। हालांकि, यदि गतिविधि का एक उदाहरण पहले से मौजूद है, तो सिस्टम एक नया निर्माण करने के बजाए, ऑन-न्यूइन्टेंट() विधि पर कॉल के माध्यम से मौजूदा उदाहरण के इरादे को रूट करता है।

singleInstance

, के रूप में "singleTask" वही, सिवाय इसके कि प्रणाली उदाहरण पकड़े कार्य में किसी भी अन्य गतिविधियों का शुभारंभ नहीं है। गतिविधि हमेशा अपने कार्य का एकल और एकमात्र सदस्य होता है।

http://developer.android.com/guide/topics/manifest/activity-element.html

आपकी समस्या जारी रहती है, तो अपवाद स्टैक ट्रेस पोस्ट करें।

0

अपने मैनिफ़ेस्ट फ़ाइल में शामिल
android:launchMode="singleInstance"

संबंधित मुद्दे