1

我使用服务通过手势启动应用程序。 这工作正常。但是当我按下home按钮时(无论何时何地都无所谓),那么从服务启动应用程序(在按下homebutton之后)大约需要2-3秒。也可以在按住home按钮2-3秒后启动应用程序,然后应用程序立即启动。另一种方法是在从服务启动应用程序之前打开一个随机应用程序。那么也没有延迟。按下主页按钮后从服务启动应用程序需要太长时间

总结:

随时按下为homeButton后,从推出该服务的应用程序与下面的代码(按为homeButton后右),大概需要2-3秒。按Homebutton后2-3秒启动应用程序立即启动应用程序。

startActivity(getPackageManager().getLaunchIntentForPackage(item)); 
Toast.makeText(getApplicationContext(), "TestTest", Toast.LENGTH_SHORT).show(); //just for testing 

敬酒-消息(该startActivity命令后右)总是会立即显示,所以服务是工作的时候,即使按下hombutton之后。

这个问题真的很奇怪。 homebutten如何在服务中“阻塞”startActivity-Command几秒钟?

任何想法? Thx

+0

你检查过你的清单文件吗? –

+0

检查什么? – user3284588

+0

这可能会导致你的错误! –

回答

-2

不确定,首先让你的活动启动模式单一task.and当你的活动后台,然后调用service方法再次启动它。

+0

不知道你的意思和我的问题有什么共同点?你能详细说明你的想法吗? – user3284588

+0

但为什么忽视标记答案。 – User10001

+0

我不知道,那不是我...... – user3284588

0

我有同样的问题。

我设法发现的唯一情况是等待期是由名为waitForActivityStart的线程引起的。这是你可以看到,如果你开始使用ddms方法分析。

奇怪的是,在那个线程中没有任何东西被执行 - 没有使用cpu时间。它只是等待几秒钟 - 或者至少它是这样的。

对不起,我不能提供完整的解决方案,我希望这可以帮助某人继续研究,因为我也被困在这里。

+0

Thx这个有用的答案。我研究了很多最后的日子,我发现了一个有趣的链接: http://stackoverflow.com/questions/5600084/starting-an-activity-from-a-service-after-home-button-pressed-without- 5-seco 它看起来并不那么容易避免延迟时间。 – user3284588

+0

我明白了。正如我所描述的那样,这正是发生的事情:这个线程实际上什么都不做,只是等待几秒钟。 – tzrnee

相关问题