如何从android中的线程类启动一个活动?

时间:2011-06-08 05:42:14

标签: android multithreading android-activity

我正在扩展一个线程类,我想从该类开始一个活动。怎么做?

3 个答案:

答案 0 :(得分:13)

您需要在应用程序的主线程上调用startActivity()。一种方法是通过执行以下操作:

  1. 初始化Handler并将其与应用程序的主线程关联。

    Handler handler = new Handler(Looper.getMainLooper());
    
  2. 将在匿名Activity类中包含将启动Runnable的代码并将其传递给Handler#post(Runnable)方法。

    handler.post(new Runnable() {
        @Override
        public void run() {
            Intent intent = new Intent (MyActivity.this, NextActivity.class);
            startActivity(intent);
        }
    });
    

答案 1 :(得分:0)

开始一个类的活动,一个类应该根据我的活动扩展。

但是如果你想用一些线程函数启动活动,你可以做这些事情。

使用implements Runnable代替extends Thread。在那个有一个Activity的类之后你只需要调用start线程并放入你的逻辑并启动Intent。

我认为这对你来说是个很好的解决方案。

答案 2 :(得分:0)

你可以使用像这样的东西。

public class MyActivity extends Activity
{
    Handler hander = new Handler(){
        public void handleMessage(Message m){
            Intent intent = new Intent (MyActivity.this, Next.class);
            startActivity(intent);
        }
    };
    pubilc void onCreate(Bundle ic)
    {
       //your code setContentView() etc....
       Thread toRun = new Thread()
       {
              public void run()
              {
                    hander.sendMessage(1); 
              }
       }
       toRun.start();
    }
}