【问题标题】:Where to place the location code in a tabbed application?在选项卡式应用程序中的何处放置位置代码?
【发布时间】:2014-08-23 23:41:38
【问题描述】:
我碰巧有一个包含三个选项卡的应用程序,其中每个选项卡都是一个片段。在其中一个片段中,我需要获取用户的位置,而在除主片段之外的活动中,我还需要获取用户的位置。
我的问题是:放置代码以获取用户位置的最佳位置在哪里?
我已将相同的代码剪切并粘贴到两个位置(片段和活动),但这似乎效率极低。我认为我会将代码放在主要活动中并使用静态值...任何建议/cmets 将不胜感激。
此外,“最佳实践”是否会规定,如果我使用选项卡式界面,我只保留一个活动并使用片段来完成所有操作,例如操作栏功能?
谢谢,
分钟 = 18
目标 = 19
【问题讨论】:
标签:
android
android-fragments
android-tabs
android-location
【解决方案1】:
我建议创建另一个类并将代码放入其中(静态方法),然后从活动和片段中调用它们。 注意:这与将代码放在两个类中没有区别。比如:
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()。你可以在这里查看。
我没有完全理解你的最后一个问题,但差别不大。
友情建议:
如果您不需要 API 18 中引入的内容,请减少您的 minSdkVersion,因为很多设备(例如我的手机)会错过您的应用。
希望对您有所帮助:)