【问题标题】:Connecting to google fit android API not in the activity class连接到不在活动类中的 google fit android API
【发布时间】:2019-07-20 11:25:53
【问题描述】:

我目前正在学习为 Android 编写代码,但在理解如何正确连接到 API 或在我的特定情况下连接到 Google fit API 时遇到了一些麻烦。

在 Google 开发人员提供的示例中,他们在 onCreate() 方法中连接到 API。但是,我在想,在开发更复杂的应用程序时,这是否是最佳实践,何时可以将代码连接到活动类中的 API?更具体地说,什么时候应该将其移至其他线程?我担心以这种方式保持代码的性能问题 - 另一方面,如果我将此代码移动到其他线程,是否有可能在后台运行时遇到一些与 android 服务终止相关的连接问题?

https://github.com/googlesamples/android-fit/blob/master/BasicHistoryApi/app/src/main/java/com/google/android/gms/fit/samples/basichistoryapi/MainActivity.java

protected void onCreate(Bundle savedInstanceState) {

   super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    FitnessOptions fitnessOptions = FitnessOptions.builder()
            .addDataType(TYPE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
            .addDataType(DataType.AGGREGATE_STEP_COUNT_DELTA, FitnessOptions.ACCESS_READ)
            .build();


    if (!GoogleSignIn.hasPermissions(GoogleSignIn.getLastSignedInAccount(this), fitnessOptions)) {
        GoogleSignIn.requestPermissions(
                this,
                REQUEST_OAUTH_REQUEST_CODE,
                GoogleSignIn.getLastSignedInAccount(this),
                fitnessOptions);
    } else {
        accessGoogleFit();
    }
}

如果我的问题看起来既愚蠢又基本,我提前道歉,但我非常渴望了解更多关于编码方面的最佳实践并了解如何开发工作应用程序!

【问题讨论】:

  • 它正在工作,我只是想知道在主活动类中保持代码连接到 API 是否是一种好习惯。谢谢!
  • 查看我的答案,如果您需要其他任何内容,请告诉我,我会对其进行编辑。快乐编码:)
  • @a_local_nobody 谢谢你的回答!是的,现在说得通了。我会尝试在另一个线程中实现它

标签: java android multithreading google-fit


【解决方案1】:

为了让您更好地理解,通常谷歌(或大多数人)给出的任何示例都是最简单的形式,只是为了让您了解代码或框架,您决定如何最好地实现它给你,你会从经验中获得。

要进一步回答您的问题,这实际上取决于具体情况。如果您的活动不会被创建或重新创建多次(即使它被销毁并重新创建,根据情况它仍然可能很好),但在活动的创建中保留 api 调用可能很好,但是是的,理想情况下,应该将这个调用移到不同的线程,使用 RxJava 或其他线程技术。这样做的原因是(当 api 调用在主线程上完成时)它可能会暂停整个应用程序,直到该 api 调用返回信息,这是一种不好的做法,会给你带来很多问题。将此代码移至不同的线程不会降低性能(恰恰相反),您可能应该尝试以某种形式的线程来实现此代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-29
    • 2020-12-29
    • 2018-08-12
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多