2
用戶流量:單擊按鈕,重定向到顯示谷歌地圖的MapActivity。一個位置被給出,有一個按鈕用於使用當前位置到達給定位置的路線。當位置服務被關閉時,用戶被提示將其打開。用戶更改位置設置後刷新活動
private void goToLocationSettings(){
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivityForResult(intent, 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == 1) {
switch (requestCode) {
case 1: Log.e("test", "onActivityResult");
break;
}
}
}
當用戶返回函數應該可以完成。但程序再次打開設置。日誌從不顯示。
如果我在設備上打開位置服務後等了一下,我沒有問題將其打開,但日誌消息仍未顯示。
我不知道我在做什麼錯。
那麼這很有趣,如果我用調試器運行它,它會出現resultCode = 0,因此如果我把Log放在那裏,它就不會顯示日誌。任何想法可能會造成這種情況? –
您無法從位置設置活動獲取結果,因此執行此操作的方法是僅檢查用戶返回時現在是否啓用位置服務。 –
在這種情況下'resultCode'將始終爲0,因爲用戶使用後退按鈕退出設置活動,所以就好像他取消了請求。 –