我正在开发一个应用程序,我需要从BroadcastReceiver调用一个活动方法。
我的应用是当用户接到电话时,广播接收器会发现并向该特定号码发送消息。
我能够得到那个没有,但是我想发一条消息给那个号码,因为这个发送短信我在旁边发送sms方法创建了一个活动就在那里..
如何从BroadcastReceiver中调用该特定方法。
答案 0 :(得分:1)
您需要制作该方法static and public inside your activity
。您可以像这样调用该方法:
ActivityName.mehtodName();
如果将该方法放在util类中并从那里调用它会好得多。
答案 1 :(得分:0)
您可以使用界面来创建回调,以便从BroadcastReceiver
interface MyCallback{
public void doStuff();
}
在BroadcastReceiver中提供回调
public class MyBroadcastReceiver extends BroadcastReceiver{
private MyCallback callback;
public MyBroadcastReceiver(MyCallback callback){
this.callback = callback; //<-- Initialse it
}
@Override
public void onReceive(Context context, Intent intent) {
callback.doStuff(); //<--- Invoke callback method
}
}
现在在您的Activity中实现回调并覆盖方法
MyActvity extends AppcompatActivity implements MyCallback {
// Your Activity related code //
// new MyBroadcastReceiver(this); <-- this is how you create instance
private void sendSMS(){
// your logic to send SMS
}
@Override
public void doStuff(){
sendSMS(); //<--- Call the method to show alert dialog
}
}
您可以了解使用这种方法here in detail
的优势