簡體   English   中英

從線程的內部線程啟動android活動。

[英]starting android activity from a thread's inside thread.

此代碼位於MainActivity類中。

Thread thread1 = new Thread(new Runnable() {
             @Override
             public void run() {
                    Thread thread2 = new Thread(new Runnable() {
                            @Override
                            public void run() {

                             Intent i = new Intent(getApplicationContext(), NextActivity.class);
                            startActivity(i);
                            }
                       });
                     thread2.start();


             }
          });
          thread1.start();

當我運行此代碼時,什么都沒有發生。

您不能使用其他線程來處理UI或調用其他活動,只能從主UI線程執行操作。

Intent i = new Intent(getApplicationContext(), NextActivity.class);
                            startActivity(i);

運行其他線程意味着您正在與主線程同時執行一些額外的任務。

startActivity應該在主線程中運行,因此,如果需要從thread2運行它,我會將其發布到主線程中。

Thread thread2 = new Thread(new Runnable() {

  @Override
  public void run() {

    Handler mainHandler = new Handler(context.getMainLooper());
    Runnable myRunnable = new Runnable() {
      @Override 
      public void run() {
        Intent i = new Intent(context, NextActivity.class);
        startActivity(i);
    }
    mainHandler.post(myRunnable);
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM