如何避免启动Android应用程序两次,从Eclipse运行到真实设备

前端之家收集整理的这篇文章主要介绍了如何避免启动Android应用程序两次,从Eclipse运行到真实设备前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在从 eclipse运行应用程序并且它正在启动两次:第一次启动应用程序,然后在几秒钟后再次重新启动

我的应用程序启动画面—>>主要活动(两次开放).

我已经尝试在我的清单文件添加android:launchMode =“singleInstance”,但没有成功.

我已经尝试了3个不同的应用程序,我的日食仍然在我的Kitkat,棒棒糖真实设备中打开两次(创建了一个也打开两次的新项目)

编辑1:

尝试在清单文件添加此行但不是Success-android:launchMode =“singleTop”

请让我知道如何解决这个问题.

清单文件

<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>

我的开始是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);
    }

解决方法

从以下两个活动之一中删除它:
<intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

此intent-filter指示Android是主要活动,您应该只有一个.

猜你在找的Android相关文章