java - 为什么我的主要活动显示的比我的启动屏幕先显示
问题描述
这是带有初始屏幕代码的代码的第一部分
public class MainActivity extends AppCompatActivity {
private static final int SPLASH_TIME_OUT = 1000;
private static final String FILE_NAME = "example.txt";
EditText mEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mEditText = findViewById(R.id.edit_text);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent homeIntent = new Intent(MainActivity.this, HomeActivity.class);
startActivity(homeIntent);
finish();
}
},SPLASH_TIME_OUT);
运行应用程序后出现的第一件事是主要活动,而不是启动画面
解决方案
您必须使用 Intent Filter 指定您的活动操作,Intent Filters 指定活动、服务或广播接收器可以响应的意图类型。意图过滤器声明其父组件的功能——活动或服务可以做什么以及接收器可以处理哪些类型的广播。它打开组件以接收广告类型的意图,同时过滤掉那些对组件没有意义的意图。
如在您的情况下,您必须指定 MainActivity/SplashActivity 应处于启动器模式(启动器模式是 Android OS 的指令,它指定应如何启动活动),您必须使用 Intent 过滤器并指定 Activity Actions ,
*必须通过这篇文章App Manifest Overview
<Application>
将此添加到标签内的清单文件中
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
推荐阅读
- java - 打印堆栈跟踪说“警告”而不是“错误”
- relationship - EER图中的多对多关系,N:M vs N:M
- python - 如何将一个元组分成两个独立的列表?
- vert.x - 如何在 vert.x 中执行长阻塞操作?
- javascript - 在角度材料中选择 mat-option 时调用 ngmodelchange
- influxdb - 如何拆分标签键和标签值
- c - 函数调用中指向 const 的指针
- authentication - ecryptfs-migrate-home 与域用户的主目录
- mysql - current_time() 的 MySQL 排序规则
- replace - 如何在ansible中替换某行之后的所有字符串?