android - 载入画面介绍

标签 android multithreading android-intent

在我正在开发的应用程序中,我对加载屏幕的介绍很感兴趣。持续一段时间后自动移动到下一个屏幕。

简介本身运行良好。以及延迟系统的线程。 我的问题是让它们协同工作。

代码:

public class MainActivity extends Activity implements OnClickListener {

ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading_screen);


    final Thread t1=new Thread(new Runnable() {


    public void run() {

        iv=(ImageView)findViewById(R.id.imgBtn1);
        iv.setBackgroundResource(R.anim.loading_i_animation);
        AnimationDrawable anim=(AnimationDrawable) iv.getBackground();
        anim.start();

        }
    });

    t1.start();


    try {
        Thread.sleep(2000);
        finish();
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    finally {
        Intent st=new Intent(MainActivity.this,Welcome.class);
        startActivity(st);
    }


    }

此代码的结果是在线程休眠持续时间内打开一个白屏。然后通过 Intent 打开“Welcome.class”屏幕。

它只是跳过了 loading_screen,因为它甚至不存在。

我希望你们能帮我解决这个问题。

最佳答案

您将 sleep 放在 UI 线程上,这会阻止 Android 在它完成之前显示任何内容。试试下面的代码:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.loading_screen);

    iv=(ImageView)findViewById(R.id.imgBtn1);
    iv.setBackgroundResource(R.anim.loading_i_animation);
    AnimationDrawable anim=(AnimationDrawable) iv.getBackground();
    anim.start();

    new Handler().postDelayed(
        new Runnable() {
            public void run() {
                Intent st=new Intent(MainActivity.this,Welcome.class);
                startActivity(st);
                finish();
            }
        }, 2000);
}

这样延迟将在单独的线程上运行,但 2 秒后它会变回主线程并运行您在 Runnable

中指定的代码

关于android - 载入画面介绍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311499/

相关文章:

android - 在 Android 中从一个 Activity 移动到另一个 Activity

android - 如何在使用 Intent.ACTION_PACKAGE_REMOVED 时查找已卸载的包名称

android - 如何配置 Tensorflow 对象检测 Android 演示以使用 Inception v2

android - 将 Single<Boolean> 转换为 Boolean (Kotlin)

android - 使用 AsyncTask 进行方形图像旋转的自定义进度对话框

Python mysql池连接fetchall函数返回数组中的 'u'关键字

c# - 共享对象和线程

java - 从 JavaFX 中的不同线程更新 UI

android - 从 Android Intent 打开 Ionic (Capacitor) 应用程序中的特定页面

java - 从 viewpager 中的 Activity 开始新 Activity ?