java - 每次 BackgroundService 触发时在 Mainactivity 中获取更新
问题描述
我有
public class Backgroundservice implements AlarmReceiverCallback {
private Context context;
public Backgroundservice(Context context) {
this.context = context;
}
@Override
public void onAlarmReceived() {
//interface trigger
}}
现在我想 在扩展AppCompatActivity的MainActivity类中扩展Backgroundservice。
所以一旦Backgroundservice中的接口触发,我就可以在mainactivity中使用我的方法
解决方案
您可以使用BroadCastReceiver
在你的服务课上
public class Backgroundservice implements AlarmReceiverCallback {
private Context context;
public Backgroundservice(Context context) {
this.context = context;
}
@Override
public void onAlarmReceived() {
// send broadcast from here
Intent intent = new Intent("alaram_received");
context.sendBroadcast(intent);
}
并在您的 MainActivity 中接收此广播。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Register Receiver
IntentFilter intentFilter = new IntentFilter("alaram_received");
registerReceiver(alarm_receiver,intentFilter);
}
BroadcastReceiver alarm_receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// refresh Token
}
};
}
快乐编码。
推荐阅读
- android - 在 Flutter App 中,每个屏幕是否应该有不同的广告单元来显示横幅?
- node.js - 如何使用 ExcelJs 将图像插入单元格
- java - 获取 NoSuchMethodError:com.amazonaws.util.StringUtils.trim
- reactjs - REACT 从浏览器签名或登录用户时出现问题,我收到 401(未经授权)
- json - 遍历嵌入在列表中的字典并将键值分配给变量的最佳方法
- asp.net-core - 无法将路由添加到 Blazor 服务器端
- python - Google Colab - [Errno 2] 没有这样的文件或目录:'C:/Users/stu/Downloads/aclImdb/train/neg'
- python - 将滚动窗口与数组相乘(熊猫)
- python - 如何通过在 python 中使用 fpdf 组合字符来打印印地语单词?
- c# - REST API 端点命名约定?