gpt4 book ai didi

android - 何时扩展服务并在后台运行

转载 作者:行者123 更新时间:2023-11-29 14:59:49 24 4
gpt4 key购买 nike

我有点困惑什么是使用服务(用于后台任务)的正确位置。

这是我的场景:

我有一个扩展广播接收器的类。它接收 WiFi 状态变化。根据状态变化,我调用另一个类。这是一个纯 Java 类,没有扩展任何类。

此类通过传递 Context(通过广播接收器接收)来实例化。我需要传递 Context,因为除其他外,我访问 SharedPreferences、显示通知等。但这不是前台 Activity 。

这是正确的方法吗?还是我的类应该扩展 Service 并作为后台任务工作?

通过Context发起一个类是不是错了?

例如,

public class WifiStateBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
...
WifiChangeReceptionClass wifiChanged = new WifiChangeReceptionClass(context);
wifiChanged.showNotification();
...
}

这种方法有什么问题?

最佳答案

试试这个:

public class WifiChangeReceptionClass{
public static void showNotification(Context context){
//showYourNotification
}
}

或者

创建一个 Application 类,它有一个静态方法来获取它的上下文,就像这样。

public class MyApplication extends Application {
...
public static MyApplication get(){
return this;
}
...
}

然后在你的类里面,调用:

public class WifiChangeReceptionClass{
public static void showNotification(){
Context context = MyApplication.get();
//showYourNotification
}
}

或者

只需使用 dagger 进行依赖注入(inject)。 Check docs here

关于android - 何时扩展服务并在后台运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49492426/

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