0

I have written an activity that create and start IntentService,the IntenteService send BroadCast messege to the Activity which received it successfully, now I want to send back data from the Activity to the IntentService, I tried by implementing i tried to implimente BroadCastReciver, however, it didn't work, any tips ? Thanks in advance.

public class ListenActivity extends AppCompatActivity  {

/*** Attributes ***/


private Intent intentListeningService;
private Intent intentVictim;

//BroadcastReceiver
private BroadcastReceiver_addVictim broadcastReceiver_addVictim;

//IntentFilters
private IntentFilter intentFilter_addVictim;
private SwipeRefreshLayout mSwipeRefreshLayout;


// for send to Service  
public static final String ACTION_Refresh = "com.bmm.bmmratvandroid.ListenActivity.Refresh";
public static final String EXTRA_KEY_r = "EXTRA_r";


@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_listen);


    /*****************************************************
     *  initialization get info from precedent activity  *
      ***************************************************/
    Intent i = getIntent();
    serverPort = i.getIntExtra("port",6000);

    /****************************
     *  start service listening *
      ***************************/
      intentListeningService = new Intent(this, ListeningService.class);
    intentListeningService.putExtra(ListeningService.EXTRA_KEY_PORT, serverPort);
    Toast.makeText(getApplicationContext(), "Starting Service ..", Toast.LENGTH_LONG).show();
    startService(intentListeningService);

    /********************************
     *  Create BroadcastReceivers   *
      *******************************/
    broadcastReceiver_addVictim = new BroadcastReceiver_addVictim();

    /*******************************
     * register BroadcastReceivers *
     *******************************/
    intentFilter_addVictim = new IntentFilter(ListeningService.ACTION_MyUpdate);
    intentFilter_addVictim.addCategory(Intent.CATEGORY_DEFAULT);
    registerReceiver(broadcastReceiver_addVictim, intentFilter_addVictim);



  // here shoud send message to Service what didn't work

    Intent intentRefresh = new Intent();
    intentRefresh.setAction(ACTION_Refresh);
    intentRefresh.addCategory(Intent.CATEGORY_DEFAULT);
    intentRefresh.putExtra(EXTRA_KEY_r, "REFRESH");
    sendBroadcast(intentRefresh);


} // fin onCreate(Bundle savedInstanceState)




/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 < BroadcastReceiver Classes <
 <<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
public class BroadcastReceiver_addVictim extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {

    String ip =null;
        ip = intent.getStringExtra(ListeningService.EXTRA_KEY_addVictim);
    // Here I recive message from the IntentService
    // process(ip)

    }

}} // fin ListenActivity




public class ListeningService extends IntentService {

/*** Attributes ***/

public static final String ACTION_MyIntentService = "com.bmm.bmmratvandroid.ListeningService.RESPONSE";
public static final String ACTION_MyUpdate = "com.bmm.bmmratvandroid.ListeningService.UPDATE";
public static final String EXTRA_KEY_PORT = "EXTRA_PORT";
public static final String EXTRA_KEY_OUT = "EXTRA_OUT";
public static final String EXTRA_KEY_addVictim = "EXTRA_addVictim";
public static final String EXTRA_KEY_deleteVictim = "EXTRA_deleteVictim";
int serverPort;
private String serviceMsg;
private ServerSocket serverSocket;
private Hashtable<String,Socket> sockets;
private int timeOut;

//BroadcastReceiver
private BroadcastReceiver_reponse broadcastReceiver_r;

//IntentFilters
private IntentFilter intentFilter_r;


/*****************
 * Constructeur  *
 * ***************/

public ListeningService() {
    super("com.bmm.bmmratvandroid.ListeningService");
    sockets = new Hashtable<String,Socket>();
    timeOut = 3000;
}



/************************
 * Communication method *
 ************************/

@Override
protected void onHandleIntent(@Nullable Intent intent) {

    serverPort = intent.getIntExtra(EXTRA_KEY_PORT,6000); // get port



    /********************************
     *  Create BroadcastReceivers   *
     *******************************/
    broadcastReceiver_r = new BroadcastReceiver_reponse();

    /*******************************
     * register BroadcastReceivers *
     *******************************/
    intentFilter_r = new IntentFilter(ListenActivity.ACTION_Refresh);
    intentFilter_r.addCategory(Intent.CATEGORY_DEFAULT);
    registerReceiver(broadcastReceiver_r, intentFilter_r);


}

//*-*-*-*-*-*-*-*-*-*-*-**-*-*-*//
//\\ Calling ListenActivity  //\\
//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*//

private void addVictim(String ip) {


    Intent intentUpdate = new Intent();
    intentUpdate.setAction(ACTION_MyUpdate);
    intentUpdate.addCategory(Intent.CATEGORY_DEFAULT);
    intentUpdate.putExtra(EXTRA_KEY_addVictim, ip);
    sendBroadcast(intentUpdate);
}




//###############################
// methode manipulating sokets #
//###############################


/*<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 < BroadcastReceiver Classes <
 <<<<<<<<<<<<<<<<<<<<<<<<<<<<*/
public class BroadcastReceiver_reponse extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// HERE I SHOUD RECIVE THE MESSAGE !?
//???????????????????????????????????
        intent.getStringExtra(ListenActivity.EXTRA_KEY_r);

    }

}}

0 Answers0