現在、viewPager 内に 3 つのフラグメントがあります。フラグメントの 1 つは a を登録するBroadcastReceiver
ことですが、現在の実装では何も得られません。
@Override
public void onActivityCreated(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onActivityCreated(savedInstanceState);
getSherlockActivity().getApplicationContext().registerReceiver(
broadcastReceiver,
new IntentFilter(UpdateService.UPDATE_NOTIFICATION));
optionsBroadcast = true;
}
whereoptionsBroadcast
は、boolean
呼び出されたサービスを追跡するために使用される値でbroadcastReceiver
、次のとおりです。
public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.i("onBroadcastReceiver", "service is being called ?");
updateOptionsMenu(intent);
}
};
また、 unRegister ロジックをonPause
and内に実装しましたonResume
。
サービスクラスで:
public class UpdateService extends Service{
Intent updateIntent;
public static final String UPDATE_NOTIFICATION = "com.eps.support.updatenotification";
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
updateIntent = new Intent(UPDATE_NOTIFICATION);
new CheckUpdates().execute(getApplicationContext());
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
Log.i("inside service", "onStartCommand");
return START_STICKY;
}
public class CheckUpdates extends AsyncTask<Context, Void, String>{
//URL parsing logic where either the setOnEqual() or setOnUpdate() is called.
}
public void setOnEqual(){
updateIntent.putExtra("isUpdated", 1);
sendBroadcast(updateIntent);
}
public void setOnUpdate(){
updateIntent.putExtra("isUpdated", 2);
sendBroadcast(updateIntent);
}
}
クラスをサービスとして指すマニフェスト ファイルも更新しました。何らかの理由でサービスが機能しません。または、本来の処理を実行しません。setOnEqual()
サービスに登録すると、サービスはorが呼び出されたAsyncTask
場所で呼び出します。サービスにすべてのエントリが設定されているため、それらのどれも呼び出されません。setOnEqual()
setOnUpdate()
Log
助けてください。