如何在Android应用程序中实现线程概念?

时间:2011-02-07 06:57:05

标签: android

我已经实现了一个基本的android应用程序。我想在其中使用线程概念。

当应用程序打开时,一个闪屏显示一段时间(3秒),然后打开新视图。

我知道如何打开下一个视图,但我不知道如何显示启动画面3秒钟。

请告诉我这个想法。

提前致谢。

5 个答案:

答案 0 :(得分:4)

  

CountDownTimer将是好事   主意!

  public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            setContentView(R.layout.mylayout);

    lTimer = new CountDownTimer(3000, 1000) {

        public void onFinish() {
        closeScreen();
        }
        @Override
        public void onTick(long millisUntilFinished) {
        }
    }.start();
 }

 private void closeScreen() {
        Intent lIntent = new Intent();
        lIntent.setClass(getApplicationContext(), MainActivity.class);
            startActivity(lIntent);
            finish();
        }
      }

答案 1 :(得分:3)

我不会想出任何有关此问题的代码,因为让您了解启动画面的用途更为重要。

当您的应用程序需要执行某种初始化过程时会使用启动画面,这需要一些时间,例如您的应用程序依赖于必须获取和解析的网络数据。它在等待时向用户呈现一些东西。在任何情况下都不应该使用启动画面而没有充分的理由,这意味着只需在特定时间显示启动画面而不在后台执行任何重要操作。

答案 2 :(得分:2)

我认为你正在寻找这个:

Splash_Activity的

代码

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);

    // thread for displaying the SplashScreen
    Thread splashTread = new Thread() {
        @Override
        public void run() {
            try {
                int waited = 0;


       while(_active && (waited < 3000)) {
                sleep(100);
                if(_active) {
                    waited += 100;
                }
            }
        } catch(InterruptedException e) {
            // do nothing
        } finally {
            finish();
            Intent intent = new Intent(getBaseContext(), nextActivity.class);
            startActivity(intent);
            stop();
        }
    }
};
splashTread.start();
}

这也是一个很好的示例http://www.androidpeople.com/android-loading-welcome-splash-spash-screen-example/

答案 3 :(得分:1)

您可以像在普通的普通Java应用程序中使用它们一样使用线程:)。尝试google,有几个很好的例子。这是我刚发现的那个

答案 4 :(得分:1)

new Handler().postDelayed(new Runnable() 
        {
            @Override
            public void run() 
            {

                Intent in = new Intent(SplashActivity.this,NextActivity.class);
                startActivity(in);
                    finish();
            }
        },3000);