gpt4 book ai didi

java - 在 Android Java 中传递上下文并不好,但是如何访问服务中的 Activity 呢?

转载 作者:行者123 更新时间:2023-12-01 19:53:06 25 4
gpt4 key购买 nike

我知道传递静态上下文是禁忌,应该避免。我明白其背后的原因。

我的问题是,我们如何访问参数中需要“Activity”的某些调用。如:

public class BackgroundServiceParent extends Service implements
GoogleApiClient.ConnectionCallbacks,
GoogleApiClient.OnConnectionFailedListener {

mGoogleApiClient = new GoogleApiClient.Builder(this)
.addApi(Fitness.HISTORY_API)
.addApi(Fitness.CONFIG_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
.useDefaultAccount()
.addConnectionCallbacks(
new GoogleApiClient.ConnectionCallbacks() {
....

if (!result.hasResolution()) {
// Show the localized error dialog

GooglePlayServicesUtil.getErrorDialog(result.getErrorCode(),
(Activity) applicationContext, 0).show();
return;
}

if (!authInProgress) {
try {
authInProgress = true;
result.startResolutionForResult((Activity) applicationContext, REQUEST_OAUTH);
} catch (IntentSender.SendIntentException e) {
Log.e(TAG,
Exception while starting resolution activity", e);
}
}
}

如果您能帮助理解这种情况下的最佳方法,我们将不胜感激。

最佳答案

不可以,从服务访问 Activity 是不好的。您可以使用 Binder 来获取 Activity 中的服务实例,然后您可以在服务中注册一些回调来与您的 Activity 进行通信。查看此链接的示例 https://gist.github.com/ErikHellman/4b6ecc87d1b37c9809d1

关于java - 在 Android Java 中传递上下文并不好,但是如何访问服务中的 Activity 呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50614718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com