我最近在我的应用程序中添加了一个启动屏幕,并将其作为启动器活动来显示,以便在应用程序启动时显示清单,
<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中一个接一个地运行。我该如何实现?我发现了许多相关问题,但没有一个对我有用。
答案 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