Android 从未调用onReceive函数

Android 从未调用onReceive函数,android,Android,我无法成功注册或使用我的广播接收器 public class ReciverChangeProgress extends BroadcastReceiver{ @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub android.util.Log.e("ReciverChagne", "IReciver"

我无法成功注册或使用我的
广播接收器

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
这是我的代码:

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
当我运行活动时,这是日志:

接收更改,一旦创建
接受改变,设定进展
收银员,收银员
接受改变、使用

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
但从未调用onReceive函数

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
谢谢你的帮助:)

我成功了

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
我忘了说:

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
reciverChangeProgress=新的reciverChangeProgress()

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
我们需要将新对象设置为broadcaseReceiver的新实例

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
reciverChangeProgress=new ReciverChangeProgress();
从不调用onReceive()
。因为广播从未被发送过。您刚刚注册接收BroadCastReceiver

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
要发送广播,请使用适当的
IntentFilter尝试这些方法

   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}
Intent intent = new Intent("commoshe");
sendBroadcast(intent);

希望它能帮助你

如果这是真正的代码,那么您可能希望在将“reciverChangeProgress”对象发送到registerReceiver()方法之前初始化该对象。谢谢。你说得对。现在是工作了。
   public class ReciverChangeProgress extends BroadcastReceiver{

    @Override
    public void onReceive(Context arg0, Intent arg1) {
        // TODO Auto-generated method stub
        android.util.Log.e("ReciverChagne", "IReciver");
    }

}

public ReciverChangeProgress reciverChangeProgress;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.e("ReciverChange","onCreate");
    setContentView(R.layout.activity_progress);
    progressBar= (ProgressBar) findViewById(R.id.progressBar1);
    Log.e("ReciverChange","setProgress");
    progressBar.setProgress(UploadService.lastPercent);
    IntentFilter intentFilter=new IntentFilter("commoshe");
    registerReceiver(reciverChangeProgress,intentFilter);
    android.util.Log.e("ReciverChagne", "register");
    sendBroadcast(new Intent("commoshe"));
    android.util.Log.e("ReciverChagne", "Use");

}