应用程序安装两次

时间:2016-12-21 14:24:28

标签: android splash

我在Android-Studios中编写了一个购物清单App。我的应用确实有一个启动画面。当我安装应用程序时,它会安装两次。当我卸载一个时,另一个卸载。我试图在启动画面上删除第一个intent过滤器,但后来我没有启动画面了。我希望我的防溅板能够保留下来。怎么解决?我的清单看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.projects.buylist">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">

    <activity
        android:name=".SplashScreen"
        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=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

3 个答案:

答案 0 :(得分:9)

该应用只有一个

您只需要两个活动(然后是2个图标)即可作为启动器。

如果您不想要,则必须在一个活动中删除此部分

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

答案 1 :(得分:2)

删除您在XML中的主要意图并创建这样的内容,这将运行启动画面,然后打开您的MainActivity

public class SplashsScreen extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash_screen);
    new Handler().postDelayed(new Runnable(){
            @Override
            public void run() {
                Intent mainIntent = new Intent(SplashsScreen.this, MainActivity.class);
                SplashsScreen.this.startActivity(mainIntent);
                SplashsScreen.this.finish();
            }
        }, 1500); // 1500 ms = 1.5 s
   }
}

答案 2 :(得分:1)

<category android:name="android.intent.category.LAUNCHER" />这告诉Android你希望从app启动器中看到活动。要解决此问题,请从intent-filter删除MainActivity