我碰巧有一个三标签应用程序,其中每个标签都是一个片段。在其中一个片段中,我需要获取用户的位置,而不是主要的活动,我还需要抓住用户的位置。
我的问题是:放置代码以获取用户位置的最佳位置在哪里?
我已将相同的代码剪切并粘贴到两个位置(片段和活动),但这似乎效率极低。我认为我会将代码放在Main活动中并使用静态值......任何建议/意见都将不胜感激。
此外,“最佳实践”是否会规定如果我使用的是选项卡式界面,我只保留一个活动,并将片段用于操作栏功能等所有内容?
谢谢,
min = 18 target = 19
答案 0 :(得分: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()
。你可以在这里查看一下。
我没有完全理解你的最后一个问题,但它并没有太大差异。
友好建议:
如果您不需要API 18中引入的内容,请减少minSdkVersion
,因为许多设备(例如我的手机)都会丢失您的应用。
希望有所帮助:)