1

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

为此,我刚刚从官方 android 文档中获取了代码。

从我的活动 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

这种异常缓慢的原因可能是什么?我该如何调试/修复它?

4

1 回答 1

0

我认为您的问题可能在这里:

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

我想你的问题可能是第一个。尝试检查并告诉我们您发现了什么。

于 2012-11-13T20:01:19.267 回答