簡體   English   中英

如何使setContentView()與線程一起正常工作?

[英]How to make setContentView() work properly with a thread?

我有2個布局和2個活動,每個活動對應一個布局,其中一個是SplashActivity,另一個是MainActivity。 我希望應用程序打開splashActivity(splash XML顯示徽標),等待5秒鍾並打開main活動,但是由於線程的原因,setContentView無法正常工作。

PS此外,任何相關的文檔鏈接將非常有用,在此先感謝

@覆蓋

受保護的void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState); 的setContentView(R.layout.splash_screen);

  Thread timer = new Thread() { public void run() { try { sleep(5000); } catch (InterruptedException ex) { ex.printStackTrace(); } try { Class mainMenu = Class.forName("com.carmine.project.MenuActivity"); Intent openMainMenu = new Intent(SplashActivity.this, mainMenu); startActivity(openMainMenu); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }; timer.run(); } 

您的問題是您正在調用timer.run(); 而不是timer.start();

timer.run(); 在執行該行的線程的同一上下文中調用run方法(在您的情況下,使UI線程等待5s,並阻塞其他所有操作)。 timer.start()產生一個新線程

暫無
暫無

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

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