Tôi đang cố gắng tạo một luồng mới trong onCreate() của một hoạt động, nhưng thay vì tạo một luồng mới và thực thi mã của runnable trong đó, mã runnable đang thực thi trong chủ đề chính của chương trình của tôi. Một chủ đề mới dường như không bao giờ được tạo ra.Android: Chủ đề mới Runnable Thực hiện trong Chủ đề chính
Các onCreate() code:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.monster_layout);
runningMonsterViewActivity = this;
Thread.currentThread().setName("Main Thread");
Log.v(TAG, "onCreate() has run");
Thread genThread = new Thread(new TestRunnable());
genThread.run();
}
Mã Runnable:
import android.os.Handler;
import android.util.Log;
public class TestRunnable implements Runnable{
String TAG = "TestRunnable";
public TestRunnable()
{
// mainThreadHandler = h;
}
@Override
public void run() {
for(int i=0; i < 1000; i++){
Log.v(TAG, new Integer(i).toString());
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
Các vết đống tôi khi tôi dừng lại mã khi nó được thực hiện:
DalvikVM[localhost:8621] (Suspended)
Thread [<1> Main Thread] (Suspended)
VMThread.sleep(long, int) line: not available [native method]
Thread.sleep(long, int) line: 1306
Thread.sleep(long) line: 1286
TestRunnable.run() line: 18
Thread.run() line: 1096
MonsterViewActivity.onCreate(Bundle) line: 49
Instrumentation.callActivityOnCreate(Activity, Bundle) line: 1047
ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2627
ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2679
ActivityThread.access$2300(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 125
ActivityThread$H.handleMessage(Message) line: 2033
ActivityThread$H(Handler).dispatchMessage(Message) line: 99
Looper.loop() line: 123
ActivityThread.main(String[]) line: 4627
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]
Method.invoke(Object, Object...) line: 521
ZygoteInit$MethodAndArgsCaller.run() line: 868
ZygoteInit.main(String[]) line: 626
NativeStart.main(String[]) line: not available [native method]
Thread [<6> Binder Thread #2] (Suspended)
Thread [<5> Binder Thread #1] (Suspended)
Daemon System Thread [<3> Signal Catcher] (Suspended)
Daemon System Thread [<2> HeapWorker] (Suspended)
Chủ đề [<5> Chủ đề kết nối # 1] (Tạm dừng) là gì? – Jack
Jack Tôi không biết tại sao nó lại nói "Chủ đề [<5> Binder Thread # 1] (Suspended)". Tôi đoán rằng tôi đã vô tình tạm dừng chủ đề đó khi tôi đang sao chép dấu vết ngăn xếp. Nó không thực sự mater, câu hỏi của tôi đã được trả lời tất cả như nhau. Cảm ơn mặc dù! – HappyCoder86