在我的启动画面中,我向服务器请求,但是当没有互联网连接时,我打开
Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
startActivityForResult(settingsIntent, REQUEST_ENABLE_CONNECTION);
但问题是使用requestCode = onActivityResult
REQUEST_ENABLE_CONNECTION
我还尝试为意图添加标记FLAG_NEW_TASK
而没有运气。
singleTop
中的活动不 singleInstance
或manifest
。
解决此问题的最佳安卓解决方案是什么?我不想使用广播,因为它不是我流量的最佳方式,所以它将作为我的最后选择。
非常感谢你的帮助。
答案 0 :(得分:6)
如果onActivityForResult
对您不利(正如@CommonsWare所建议,那很好),您可以创建一个应该正常工作的简单流程:
在您的活动中,添加
private boolean isReturnedFromSettings = false;
当您确定没有互联网连接且想要打开设置活动时,请使用startActivity
并设置isReturnedFromSettings = true;
在您的活动的onResume中,添加以下内容:
if (isReturnedFromSettings) {
isReturnedFromSettings = false;
//DO WHATEVER
}
应该工作......
答案 1 :(得分:5)
解决此问题的最佳安卓解决方案是什么?
没有问题。未记录设置应用的活动以支持startActivityForResult()
,主要活动(Settings.ACTION_SETTINGS
)根本不提供此活动。
答案 2 :(得分:0)
我找到了一个解决方法:在我的意图中
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {...});
这里有诀窍:
activity.startActivityForResult(intent,REQUEST_SYSTEM_WRITE_PERMISSION);
testDelaydRingtoneSetting(mUri, mCallback);
答案 3 :(得分:0)
将此添加到您的意图:
intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
答案 4 :(得分:-1)
请试试这个。
Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS);
startActivity(settingsIntent);