【问题标题】:Broadcast Receiver in fragment not receive intent from service片段中的广播接收器未从服务接收意图
【发布时间】:2014-04-27 19:12:21
【问题描述】:

我有一个片段和一个服务如下:

我在文件 Fragment.java 中注册和注销 LocalbroadcastManager

片段.java

@Override
public void onStart() {
   // TODO Auto-generated method stub
   super.onStart();
   IntentFilter intentFilter = new IntentFilter();
   intentFilter.addAction(ffmpegService.PROGRESS);
   intentFilter.addAction(ffmpegService.DONE);
   LocalBroadcastManager.getInstance(getActivity()).
       registerReceiver(receiver, intentFilter);
}

@Override
public void onStop() {
   LocalBroadcastManager.getInstance(getActivity()).unregisterReceiver(receiver); 
   super.onStop();
}

private final BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
   if(intent.getAction().equalsIgnoreCase(ffmpegService.PROGRESS)){
     ....
   }
}

在 ffmpegService 类中,我将广播发送到 1 个处理程序中的片段,如下所示:

ffmpegService.java

private Handler handler;
private Context mContext;

public void onCreate() {
   mContext = this.getApplicationContext();
}

@Override
public void onStart(Intent intent, int startid) {
   handler = new Handler();
   handler.postDelayed(workTask, 3000);
}

private Runnable workTask = new Runnable() {
   @Override
   public void run() {
     Intent intent = new Intent(PROGRESS);
     intent.putExtra("progress", 90);
     LocalBroadcastManager.getInstance(mContext).sendBroadcast(intent);
   }
}

但是在运行过程中,fragment 没有收到服务广播的任何东西。

任何帮助将不胜感激!

谢谢。

【问题讨论】:

    标签: android android-intent android-fragments broadcastreceiver


    【解决方案1】:

    我找到了根本原因。因为我的服务在自己的进程中运行。

    <service
            android:name="com.media.ffmpeg.ffmpegService"
            android:enabled="true"
            android:process="com.media.ffmpegservice">
    </service>
    

    我删除了 android:process="com.media.ffmpegservice" 并且它工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-02
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      相关资源
      最近更新 更多