【问题标题】:How do I set splash screen and other activities in order at android manifest?如何在 android manifest 中按顺序设置启动画面和其他活动?
【发布时间】:2020-03-07 20:23:00
【问题描述】:
我正在尝试添加我的初始屏幕以首先出现,然后它会转到注册页面。我的 android 清单代码如下。我现在知道我的意图默认是注册,视图是启动。我试着在两者之间改变它们。在这种情况下,启动屏幕首先出现并直接进入 mainactivity。请帮忙!
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mohsin.tourlog">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashActivity"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name=".signin" />
<activity android:name=".signup"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter></activity>
<activity android:name=".MainActivity">
</activity>
</application>
</manifest>
【问题讨论】:
标签:
android
android-studio
android-activity
【解决方案1】:
试试这个(像这样你必须实现你的):
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="abhiandroid.com.splashscreen">
<application
android:allowBackup="true"
android:icon="@drawable/abhiandroid"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".SplashActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".signin"/>
<activity android:name=".MainActivity"/>
</application>
</manifest>
飞溅活动:
public class SplashActivity extends Activity {
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splashfile);
handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Intent intent=new Intent(SplashActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
},3000);
}
}
【解决方案2】:
从您的“注册”活动中删除您的意图过滤器。
来自
<activity android:name=".signup"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter></activity>
到
<activity android:name=".signup"
android:theme="@style/Theme.AppCompat.DayNight.NoActionBar" />
如果您想在几秒钟内显示您的 Splash 活动,请继续您的注册。您可能希望使用 Handler 类等待几秒钟,然后使用意图调用活动。
【解决方案3】:
首先,AndroidManifest 是为系统定义活动。
你应该设置
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
为您的初始屏幕和初始屏幕设置startActivity() 任何您想要的和您的条件。