我的Android应用程序在启动画面后停止响应

时间:2017-08-16 13:40:45

标签: java android xml runtime-error manifest

我正在编写一个包含启动画面的新应用。 我已经完成了它,一切都很好。在我再次打开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>

我只是想知道我的代码中的问题是什么,我该如何解决它。谢谢^^

2 个答案:

答案 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/