来自服务的StartActivityForResult

22 java android bluetooth

我喜欢在这个例子中启用蓝牙.

但是我的类不是Activity而是Service,因此我无法调用startActivityForResult.我怎么解决这个问题?.我知道还有其他一些问题已得到解答

使用非活动的startActivityForResult

但这并没有解决我的问题,因为我的应用程序包含服务而没有别的.

Mac*_*rse 15

不幸的是你做不到.

我发现(黑客)的唯一解决方案是首先Activity使用Dialog风格打开,然后在那里进行调用.


emo*_*rol 15

我知道这是一个较老的问题,但我遇到了类似的挑战,我的解决方案是使用android:theme ="@ android:style/Theme.NoDisplay"创建一个活动,然后从中调用startActivityForResult() .这会创建一个不可见的活动,可以在将数据写入某个地方然后自行完成之前请求和接收意图.

  • 小心"@android:style/Theme.NoDisplay"......我发现在调用startActivityForResult()和显示对话框之间增加了5秒的延迟.切换到"@android:style/Theme.Translucent.NoTitleBar.Fullscreen"使延迟消失.否则,这对我有用. (2认同)