Avoiding running an Android application twice, from Eclipse to a real device

I launch the application from eclipse and run it twice: first I launch the application and then restart again after a few seconds

My application Popup --- β†’ Main action (Both open twice).

I already tried adding android: launchMode = "singleInstance" to my manifest file, but did not succeed.

I tried 3 different applications from my eclipse still opening twice in my Kitkat, Lollipop real device (created a new project that also opens twice)

EDIT 1:

I tried adding this line to the manifest file, but not Success- android: launchMode = "singleTop"

Please let me know how to solve this problem.

manifest file:

<application android:allowBackup="true" android:icon="@drawable/logo" android:label="@string/app_name" android:largeHeap="true" android:launchMode="singleInstance" android:theme="@style/AppTheme2" > <activity android:name=".Start" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> 

My launch of Activity.java

 public class Start extends Activity { SessionManagerFor_Signin session; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Session class instance session = new SessionManagerFor_Signin(getApplicationContext()); // Remove the Title Bar requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.start); ImageView Image1=(ImageView)findViewById(R.id.imageView1); //Animation Bottom to Top TranslateAnimation animation2 = new TranslateAnimation(0.0f, 0.0f,400.0f, 0.0f); animation2.setDuration(1000); animation2.setFillAfter(false); Image1.startAnimation(animation2); Thread timer = new Thread() { @Override public void run() { try { sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } finally { session.checkLogin(); finish(); } } }; timer.start(); //For Full Action bar Color Starts if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { setTranslucentStatus(true); } SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.FUllStartColor); //For Full Action bar Color Ends here } @TargetApi(19) private void setTranslucentStatus(boolean on) { Window win = getWindow(); WindowManager.LayoutParams winParams = win.getAttributes(); final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; if (on) { winParams.flags |= bits; } else { winParams.flags &= ~bits; } win.setAttributes(winParams); } 
+7
android eclipse android-manifest main-activity
source share
5 answers

Remove this from one of two actions:

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

This intent filter points to Android, which is the main activity, and you should only have one.

+2
source share

Apply the intent filter in only one of your actions. Remove from MainActivity ...

 <application android:allowBackup="true" android:icon="@drawable/logo" android:label="@string/app_name" android:largeHeap="true" android:launchMode="singleInstance" android:theme="@style/AppTheme2" > <activity android:name=".Start" android:label="@string/app_name" android:screenOrientation="portrait" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".MainActivity" android:screenOrientation="portrait" > </activity> </application> 
+1
source share

try the following:

 android:launchMode="singleTask" 

Maybe it will work. If it does not work, reinstall eclipse.

+1
source share

Apply below to the activity of your splash screen, then clean the project and run it again.

Try to register activity in the manifest file with the full package name.

 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 
0
source share

Try adding launchmode "singleTop" to your activity in your manifest.

 <activity android:name="MyActivity" android:launchMode="singleTop" ... > 
0
source share

All Articles