android - 偶尔延迟 10 秒开始 Activity

标签 android android-activity wear-os

我有一个可穿戴应用程序,其中 WearMessageListenerService 的 onMessageReceived() 启动了一个 Activity ,一切都在正常运行。

但我观察到,在调用 startActivity() 和调用 Activity 的 onCreate() 之间,偶尔会有相当大的延迟,大约 10 秒。

我的代码中没有发生任何可能导致此问题的复杂情况 - 它是一个非常非常简单的小程序,我只有这两个类 - 监听器服务和 Activity 。没有线程,没有后台处理,没有同步调用,没有阻塞,没有类似的东西。

这是来自 WearableListenerService 的一些代码:

public void onMessageReceived(MessageEvent messageEvent)
{
    Log.i(TAG, "WearableListenerService onMessageReceived() with: " + messageEvent.getPath());
    Intent = ....
    ....
    Log.i(TAG, "Going to start activity");
    startActivity(intent); 

这是 Activity 的 onCreate:

protected void onCreate(Bundle savedInstanceState)
{
    Log.i(TAG, "***************** ACTIVITY onCreate() ******************");
    ...

当我观察到延迟发生时,我可以看到这样的日志(为简洁起见缩写)

03-25 12:57:35.565   WearableListenerService onMessageReceived() with:  CALL_STATE_RINGING
03-25 12:57:35.565   Going to start activity 
03-25 12:57:43.576   WearMessageListenerService onDestroy()
03-25 12:57:45.348   *************** ACTIVITY onCreate() **************

请注意在创建 Activity 之前此日志中有 8 秒的间隔。

有没有人在一般 Activity 中观察到这样的延迟,或者这可能是可穿戴设备特有的? (在我看来,可穿戴功能似乎有点古怪,我似乎经常观察到这样的事情)。

我能做些什么来找出为什么有时会有延迟,并消除它。

最佳答案

您是否尝试过在开始 Activity 之前使用唤醒锁?您的设备可以在 Activity 开始前进入休眠状态。
我认为这里最好的方法是使用 acqure(long timeout) 自动释放锁的方法。

关于android - 偶尔延迟 10 秒开始 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29289700/

相关文章:

android - ACTION_WEB_SEARCH 仅在第一次打开正确的搜索查询

android - 无法在 Google Play 开发者控制台中的 Android Wear 上分发应用

android - glReadPixels 字节 float

android - 你能帮助我使用 Realm 解析原语吗?

c# - MvvmCross android 链接器终止绑定(bind)

android - 服务- Activity 沟通

android - 为基于 Android Gradle 的项目配置 Bamboo

java - 在Android App中使用代码设置启动Activity

android - 无法将 Android Wear 模拟器与设备连接

java - 访问 Android Wear Fit 数据