如果你想在调试时查看多线程中的不同代码路径,但Android Studio断点不能在线程之间自动切换,你需要手动切换到该线程来查看该线程的调用堆栈。以下是使用Android Studio中的Live Threads视图切换线程的方法。
在调试器状态栏中,单击[②]图标来打开“Live Threads”视图[①]。
选中你想要切换的线程。
单击 [③] 图标,Android Studio会在调试器中显示选定线程的堆栈[④]。
下面是一个Java代码示例,其中两个接口通过不同的线程被调用。你可以在线程之间切换来查看不同代码的执行情况:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
Runnable runnable1 = new Runnable() {
@Override
public void run() {
Log.d(TAG, "run: started thread 1");
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.d(TAG, "run: thread 1 count " + i);
}
}
};
Runnable runnable2 = new Runnable() {
@Override
public void run() {
Log.d(TAG, "run: started thread 2");
for (int i = 0; i < 8; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Log.d(TAG, "run: thread 2 count " + i);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread thread1 = new Thread(runnable1);
Thread thread2 = new Thread(runnable2);
thread1.start();
thread2.start();
}
}
使用“Live Threads”视图,你可以在两个不同的线程上查看不同的堆栈。要在线程之间切换,请按照以下步骤操作:
调试代码,在调试器窗口中暂停应用程序。
单击工具栏上的“Live Threads”按钮。
3