[英]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.