Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to Avoid Launching the Android Application Twice ,Running from Eclipse to real device

I am Running the application from eclipse and it's being launched twice: first time launching the app, then again relaunching after few seconds

My app Splash Screen--->> Main activity(Both Opening twice).

i already tried adding android:launchMode="singleInstance" in my manifest file, but not success.

i have tried 3 different applications from my eclipse still opening twice in my Kitkat ,lollipop real device (created new project that one also opening twice)

EDIT 1 :

Tried adding this line in manifest file but not Success-android:launchMode="singleTop"

please let me know How to solve this issue.

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 start 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);
    }
like image 368
Kumar Avatar asked Sep 24 '15 10:09

Kumar


2 Answers

Apply intent filter only in one of your activity. 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>
like image 151
Android Team Avatar answered Oct 10 '22 04:10

Android Team


Remove this from one of the two activities:

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

This intent-filter indicates to Android which is the Main Activity, and you should have one only.

like image 22
Shine Avatar answered Oct 10 '22 05:10

Shine