package com.zhan_dui.download.alfred.defaults; import android.app.PendingIntent; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import com.zhan_dui.download.alfred.Alfred; import com.zhan_dui.download.alfred.utils.AlfredUtils; /** * Created by daimajia on 14-3-31. */ public class MissionActionReceiver extends BroadcastReceiver{ private static final String TAG = "MissionActionReceiver"; private static final String ID = "MISSION_ID"; private static final String TYPE = "MISSION_TYPE"; public enum MISSION_TYPE{ PAUSE_MISSION,RESUME_MISSION,CANCEL_MISSION } public static PendingIntent buildReceiverPendingIntent(Context context,MISSION_TYPE type,int missionID){ Intent intent = new Intent(context.getApplicationContext(),MissionActionReceiver.class); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); intent.putExtra(ID,missionID); intent.putExtra(TYPE,type); PendingIntent pendingIntent = PendingIntent.getBroadcast(context, AlfredUtils.randInt(1,1000000), intent, PendingIntent.FLAG_UPDATE_CURRENT); return pendingIntent; } @Override public void onReceive(Context context, Intent intent) { MISSION_TYPE type =(MISSION_TYPE)intent.getExtras().getSerializable(TYPE); int missionID = intent.getExtras().getInt(ID); if(missionID == -1){ return; } switch (type){ case PAUSE_MISSION: Alfred.getInstance().pauseMission(missionID); break; case RESUME_MISSION: Alfred.getInstance().resumeMission(missionID); break; case CANCEL_MISSION: Alfred.getInstance().cancelMission(missionID); break; } } }