我有一个片段和一个服务如下:
我在文件LocalbroadcastManager中注册和注销Fragment.java
Fragment.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类中,我将广播发送到一个处理程序中的片段,如下所示:
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);
}
}
但在运行过程中,该片段没有从服务广播中接收到任何信息。
任何帮助都将不胜感激!
谢谢。
发布于 2014-03-20 19:38:32
我找到了根本原因。因为我的服务运行在自己的进程中。
<service
android:name="com.media.ffmpeg.ffmpegService"
android:enabled="true"
android:process="com.media.ffmpegservice">
</service>
我删除了android:process="com.media.ffmpegservice“,它工作正常。
https://stackoverflow.com/questions/22541477
复制相似问题