在选项卡式应用程序中的何处放置位置代码?

Posted

技术标签:

【中文标题】在选项卡式应用程序中的何处放置位置代码?【英文标题】:Where to place the location code in a tabbed application? 【发布时间】:2014-08-23 23:41:38 【问题描述】:

我碰巧有一个包含三个选项卡的应用程序,其中每个选项卡都是一个片段。在其中一个片段中,我需要获取用户的位置,而在除主片段之外的活动中,我还需要获取用户的位置。

我的问题是:放置代码以获取用户位置的最佳位置在哪里?

我已将相同的代码剪切并粘贴到两个位置(片段和活动),但这似乎效率极低。我认为我会将代码放在主要活动中并使用静态值...任何建议/cmets 将不胜感激。

此外,“最佳实践”是否会规定,如果我使用选项卡式界面,我只保留一个活动并使用片段来完成所有操作,例如操作栏功能?

谢谢,

分钟 = 18 目标 = 19

【问题讨论】:

【参考方案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,因为很多设备(例如我的手机)会错过您的应用。

希望对您有所帮助:)

【讨论】:

以上是关于在选项卡式应用程序中的何处放置位置代码?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这段代码在运行时会崩溃?它只是选项卡式视图中 SwiftUI 中的选择器

dropzone.js选项可能未放置在正确的位置

我有一个选项卡式视图,如何触发视图运行一些代码,视图由选项卡式视图激活?

带有多个表视图的选项卡式 ios 应用程序

选项卡式应用程序中的 UIWebView (Xcode)

将 xib 创建的单元格中的按钮连接到选项卡式视图应用程序中的视图