ACTION_REQUEST_ENABLE intent的startActivityForResult()大约需要6秒

问题描述 投票:1回答:1

我需要显示“你想打开蓝牙吗?”我的Android应用程序中的对话框

为此,我刚从official android documentation获得了代码。

从我的活动OnCreate()方法我执行以下操作:

if (!mBluetoothAdapter.isEnabled()) {
    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
}

有用。但是对话框出现需要大约6秒钟!

对应的logcat:

01-06 06:53:04.789 I/ActivityManager(  313): START {act=android.bluetooth.adapter.action.REQUEST_ENABLE cmp=com.android.settings/.bluetooth.RequestPermissionActivity u=0} from pid 6512
01-06 06:53:04.812 I/ActivityManager(  313): START {act=com.android.settings.bluetooth.ACTION_INTERNAL_REQUEST_BT_ON cmp=com.android.settings/.bluetooth.RequestPermissionHelperActivity u=0} from pid 907
01-06 06:53:09.843 I/ActivityManager(  313): Displayed com.android.settings/.bluetooth.RequestPermissionActivity: +5s36ms (total +5s114ms)
01-06 06:53:09.843 I/ActivityManager(  313): Displayed com.android.settings/.bluetooth.RequestPermissionHelperActivity: +5s28ms

可能是这种不寻常的缓慢的原因,我该如何调试/修复它?

android android-activity bluetooth
1个回答
0
投票

我想你的问题可能在这里:

  1. onPause()onStop()onSaveInstanceState()负担沉重。
  2. 您的应用程序使用了大量内存,因此窗口管理器等待垃圾收集器
  3. 您在服务或异步过程中负担很重
  4. 你填写IPC(进程间通信)内存,但可能这不是你的理由。

我认为你的问题可能是第一个问题。尝试检查并告诉我们您找到了什么。

© www.soinside.com 2019 - 2024. All rights reserved.