我的ReceiverApp中有一个Broadcastreceiver,我从SenderApp调用,这个工作正常。 我想在我的ReceiverApp中调用Activity的方法。
如何使用以下先决条件执行此操作? :
ReceiverApp未启动,无法动态注册接收器。
我无法从发件人调用Receivers Mainactivity,因为我想阻止显示Receiver的任何ActivityScreen。发件人应该只调用ReceiverActivity方法并继续进行,因此Senderscreen应始终位于顶部。
我无法执行ReceiverActivity方法"静态",因为那时我松开了Activity的上下文。例如,我需要使用:this.getPackageName()
public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
// Extract data included in the Intent
CharSequence intentData = intent.getCharSequenceExtra("message");
Toast.makeText(context, "Say : "+intentData, Toast.LENGTH_LONG).show();
MainActivity.myMethod(); <<<<<--------
}
}
任何提示或帮助?
答案 0 :(得分:1)
根据定义,你想要的是不可能的。如果活动不存在,则无法在其上调用方法。
将代码移动到可从接收者和活动访问的某个公共位置,例如静态方法。
我无法执行ReceiverActivity方法&#34;静态&#34;,因为那时我松开了Activity的上下文。
将Context
作为参数传递给方法。
我需要例如使用以下命令获取Receiver的Packagename:this.getPackageName()
致电getPackageName()
传递给Context
的{{1}}。