首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onActivityResult for意图(Settings.ACTION_SETTINGS)立即调用

onActivityResult for意图(Settings.ACTION_SETTINGS)立即调用
EN

Stack Overflow用户
提问于 2014-04-02 11:57:57
回答 5查看 5K关注 0票数 3

在我的启动屏幕上,我有对服务器的请求,但是当没有互联网连接时,我将打开

代码语言:javascript
复制
Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
startActivityForResult(settingsIntent, REQUEST_ENABLE_CONNECTION);

但是问题是,onActivityResult是用requestCode = REQUEST_ENABLE_CONNECTION立即调用的

我也尝试添加标志FLAG_NEW_TASK的意图,没有运气。

活动是,而不是 singleTopmanifest中的singleInstance

解决这个问题的最好的android解决方案是什么?我不想使用广播,因为这不是我的流量最好的方式,所以它将作为我的最后选择。

非常感谢你的帮助。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-04-02 12:12:33

如果onActivityForResult不适合您(如@CommonsWare所建议的那样,它很好),您可以创建一个应该工作良好的简单流:

在您的活动中,添加

代码语言:javascript
复制
private boolean isReturnedFromSettings = false;

当您决定没有internet连接并希望打开设置活动时,请使用startActivity并设置isReturnedFromSettings = true;

在活动的onResume中,添加以下内容:

代码语言:javascript
复制
if (isReturnedFromSettings) {
isReturnedFromSettings = false;

//DO WHATEVER
}

应该有效..。

票数 8
EN

Stack Overflow用户

发布于 2014-04-02 12:12:01

解决这个问题的最好的android解决方案是什么?

没有问题。设置应用程序的活动没有文档化以支持startActivityForResult(),主活动(Settings.ACTION_SETTINGS)根本不提供它。

票数 5
EN

Stack Overflow用户

发布于 2017-01-16 17:27:07

将此添加到您的意图中:

代码语言:javascript
复制
 intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22810701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档