У меня возникла проблема с отладкой многопоточного приложения с Android Studio 1.1. Кажется, что, когда точка останова ударяется, все остальные потоки также останавливаются, а не только одна с точкой останова. Я создал простое тестовое приложение со следующим методом в Activity onCreate.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread a = new Thread("thread-a") {
@Override
public void run() {
Log.v("thread", "thread-a");
}
};
Thread b = new Thread("thread-b") {
@Override
public void run() {
Log.v("thread", "thread-b");
}
};
a.start();
b.start();
}
Я установил точки останова в линиях Log.v в thread-a и thread-b, а затем запустил его в режиме отладки на моем Lollipop Nexus 5.
Когда приложение запускается, он попадает в точку останова в thread-a, но первая проблема, которую я замечаю, заключается в том, что пользовательский интерфейс приложения пуст, как если основной поток приостановлен. Затем я пошел посмотреть, что точка останова в thread-b также попала, поэтому я вытягиваю представление Threads в отладчике Android Studio, но когда я иду, чтобы развернуть нить-b, там ничего нет. Когда я расширяю основной поток, он показывает, что он приостановлен где-то в onStart().
Я делаю что-то неправильно или этот отладчик неспособен отлаживать сразу несколько потоков?