两次启动器活动创建了两个APK

时间:2018-10-16 06:13:22

标签: android

我最近在我的应用程序中添加了一个启动屏幕,并将其作为启动器活动来显示,以便在应用程序启动时显示清单,

<activity android:name=".LaucherActivity" android:theme="@style/SplashTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

在下面所示的清单中,我已经拥有MainActivity,它已经是启动器活动,

<activity
        android:name=".MainActivity"
        android:screenOrientation="portrait"
        android:theme="@style/AppTheme.TransparentTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />    s

        </intent-filter>
</activity>

因此,这实际上是在创建两个APK,一个用于启动,另一个用于主要活动。但是我希望SplashActivity和MainActivity在同一APK中一个接一个地运行。我该如何实现?我发现了许多相关问题,但没有一个对我有用。

3 个答案:

答案 0 :(得分:2)

在清单中仅使用<intent-filter>一次。像这样

<activity android:name=".LaucherActivity" android:theme="@style/SplashTheme">
        <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"
        android:theme="@style/AppTheme.TransparentTheme">

</activity>

答案 1 :(得分:1)

 public class LaucherActivity extends Activity {
private static int SPLASH_TIME_OUT = 3000;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {

            Intent i = new Intent(LaucherActivity.this, MainActivity.class);
            startActivity(i);
            finish();
        }
    }, SPLASH_TIME_OUT);
}

}

答案 2 :(得分:0)

从您的MainActivity中删除它。

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

        <category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

现在从启动活动中调用MainActivity