2014-07-03 88 views
1

我碰巧有一個三標籤的應用程序,其中每個選項卡都是一個片段。在其中一個片段中,我需要獲取用戶的位置,並且在除main之外的其他活動中,我還需要獲取用戶的位置。將位置代碼放置在選項卡式應用程序中的位置?

我的問題是這樣的:最好的地方放置代碼來抓取用戶的位置?

我已經將相同的代碼剪切並粘貼到兩個位置(片段和活動),但這看起來效率極低。我會認爲我會把代碼放在主要活動中,並使用靜態值...任何建議/意見將不勝感激。

此外,「最佳實踐」是否指示如果我使用的標籤式接口只保留一項活動,並使用各種片段(如操作欄功能)?

感謝,

分鐘= 18 目標= 19

回答

0

我建議創建另一個類,並把你的代碼在它(靜態方法)和從活動和碎片都打電話給他們。 注意:它不會把你的代碼放在兩個類中。喜歡的東西:

public class LocationUtil { 

    public static boolean isGpsEnabled(Context context) { 
     // Relative code 
    } 

    public static boolean isNetworkEnabled(Context context) { 
     // Relative code 
    } 

    public static Location getCurrentLocation(Context context) { 
     // Relative Code 
    } 

} 

但是,如果你需要每次打開應用時,獲取用戶的當前位置(我並不需要,一開始我問他要選擇一個位置)我建議得到該地點只有一次,並將其存儲在SharedPreferences,因爲它使用更少的電池和電力。

再次如果你想定期獲得位置,我建議使用LocationManager.requestLocationUpdates()。你可以在這裏查看。

我沒有完全得到你最後一個問題,但它並沒有太大的差別。

友好的建議: 如果你不需要它們在18 API引入的事情,減少您的minSdkVersion,因爲很多設備(如我的手機)會想念你的應用程序。

希望它有幫助:)

相關問題