7

我正在从 eclipse 运行应用程序,它被启动了两次:第一次启动应用程序,然后在几秒钟后再次重新启动

我的应用启动画面--->> 主要活动(均打开两次)。

我已经尝试在清单文件中添加 android:launchMode="singleInstance",但没有成功。

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

编辑 1:

尝试在清单文件中添加这一行但没有成功- 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);
    }
4

5 回答 5

2

从以下两个活动之一中删除它:

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

此意图过滤器向 Android 指示哪个是主 Activity,您应该只有一个。

于 2015-09-24T10:13:25.050 回答
2

仅在您的一项活动中应用意图过滤器。从 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>
于 2015-09-24T10:14:12.863 回答
1

尝试将清单中的 launchMode "singleTop" 添加到您的活动中。

<activity
  android:name="MyActivity"
  android:launchMode="singleTop"
  ... >
于 2015-09-24T12:59:26.077 回答
1

尝试这个:

android:launchMode="singleTask"

可能这会奏效。如果它不起作用,则重新安装eclipse。

于 2015-09-25T10:32:14.703 回答
0

以下内容应用于您的初始屏幕活动,然后清理项目并再次运行..

尝试使用完整的包名称在清单文件中注册活动。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
于 2015-09-24T10:39:18.637 回答