使用线程时,Android Studio调试器不会断开连接(可能的错误)

时间:2019-12-25 10:18:20

标签: android android-studio android-studio-3.0 android-threading

我有一个多活动应用程序。测试时,我注意到我在调用finish()时Android调试器没有断开连接。在我的LoadingActivity(启动屏幕-第一个活动已启动)和MainActivity(第二个活动已启动)上会发生此问题。

我将其范围缩小到以下最小的工作示例,以重现该问题。

  1. 创建新的Android应用程序

  2. 代码

onCreate()方法中,我们将运行2个代码示例。

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Case 1
        // Working
//        finish();

        // Case 2
        // Thread example not working - debugger remains attached
//        Thread t = new Thread(() -> {
//            runOnUiThread(() -> {
//                finish();
//            });
//        });
//        t.setName("Test Thread");
//        t.start();
    }
}
  1. 示例测试:

    • 工作示例

取消注释案例1 并在连接调试器的情况下运行,它应立即显示活动并关闭-很好,可以正常工作。调试器也已断开连接,太好了!

  • 错误的调试器示例

注释案例1 ,取消注释案例2 。运行附带调试器的案例2。该活动将暂时显示,然后结束,但是Android调试器仍然处于断开状态。

注意: 您可以在runOnUiThread(() -> ...行上放置一个断点,并检查线程名称以确保

它正在运行吗?

在调用finish()以查看卡住的内容后,我试图暂停调试器。只有Main线程正在运行(请参见下图)

enter image description here

要在我的物理Android设备(正在对其进行测试的地方)上运行运行服务,我看不到应用程序正在运行。

结论

Android Studio 3.5.2出现调试器问题。

任何人都可以确认吗?

0 个答案:

没有答案