连接到 google 适合 android API 不在 activity class

Connecting to google fit android API not in the activity class

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

在 Google 开发人员提供的示例中,他们在 onCreate() 方法中连接到 API。但是,我在想这是否是开发更复杂的应用程序时的最佳实践,以及何时可以将代码连接到 activity class 中的 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();
    }
}

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

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

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