我正在编写一个包含启动画面的新应用。 我已经完成了它,一切都很好。在我再次打开android studio以在导航栏上工作之后,我尝试运行应用程序以查看结果,但应用程序在显示启动画面后停止并崩溃。
这是主类
package com.example.computer.bsinfoshop;
public class Main extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
这是类别启动画面
package com.example.computer.bsinfoshop;
import android.graphics.Typeface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class Screen extends AppCompatActivity {
TextView tv;
ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_screen);
tv = (TextView)findViewById(R.id.textView);
img = (ImageView)findViewById(R.id.imageView);
Typeface font = Typeface.createFromAsset(getAssets(),"fonts/Satisfy-Regular.ttf");
tv.setTypeface(font);
img.setImageResource(R.drawable.rsz_2rsz_img);
Thread timerThread = new Thread(){
public void run(){
try
{
sleep(3700);
}
catch(InterruptedException e)
{
e.printStackTrace();
}
finally {
Intent intent = new Intent(Screen.this , Main.class);
startActivity(intent);
}
}
};
timerThread.start();
}
@Override
protected void onPause() {
super.onPause();
finish();
}
}
这里我认为是问题
清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.computer.bsinfoshop">
<application
android:allowBackup="true"
android:icon="@drawable/logo"
android:label="@string/app_name">
<activity
android:name=".Screen"
android:theme="@style/App">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Information"
android:label="Information"
android:theme="@style/AppTheme">
</activity>
<activity
android:name="com.example.computer.bsinfoshop.Main"
android:theme="@style/AppTheme">
</activity>
</application>
</manifest>
我只是想知道我的代码中的问题是什么,我该如何解决它。谢谢^^
答案 0 :(得分:-1)
将线程更改为以下内容:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
finish();
startActivity(new Intent(Screen.this, Main.class));
}
}, 1500);
答案 1 :(得分:-1)
老实说,我认为这不是创建启动画面的正确方法。这样就强迫用户等待3秒钟,这会导致糟糕的用户体验。
看看那个教程,你的用户会感谢你! https://www.bignerdranch.com/blog/splash-screens-the-right-way/