首页 > 解决方案 > 每次 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中使用我的方法

标签: javaandroidinheritanceextends

解决方案


您可以使用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
        }
    };
}

快乐编码。


推荐阅读