I am stuck. I am working with custom business logic. I want to publish a message after data is inserted in a Table. The message should contain the object which has been inserted. Then receive that message, get the object and do some staff(updating content provider).
My question is, when i extend BackendlessBroadcastReceiver, how do i get the object. I am subscribing to the message in onMessage(). am i doing it right?
CustomBackendlessBroadcastReceiver.java
@Override
public boolean onMessage(Context context, Intent intent) {
Backendless.Messaging.subscribe(new AsyncCallback<List<Message>>() {
@Override
public void handleResponse(List<Message> messages) {
//get message details
String header_details;
Object dataObject = new Object();
for (Message message : messages) {
Map<String, String>header_map = message.getHeaders();
dataObject = message.getData();
header_details = header_map.get( EventPublishingHeader.getCurrentEventHeader() );
}
Log.e("BROADCASTrECEIVER", ""+ (dataObject != null ? dataObject.toString() : "DATA OBJECT IS EMPTY"));
}
@Override
public void handleFault(BackendlessFault backendlessFault) {
Log.i("BROADCASTRECEIVER_E", backendlessFault.getMessage());
}
});
return super.onMessage(context, intent);
}
TableEventHandler is this,
PublishOptions publishOptions = new PublishOptions();
@Override
public void afterCreate( RunnerContext context, HashMap hashmap, ExecutionResult<HashMap> result ) throws Exception
{
// add your code here
publishOptions.putHeader(EventPublishingHeader.getCurrentEventHeader(), "object_created");
Backendless.Messaging.publish(hashmap,publishOptions);
}
EventPublishHeader is
private static String CURRENT_EVENT_HEADER = "event_happening";
.....
I will appreciate if i get help soon… And please if you dont mind, would you guide on how to configure compilation directory for coderunner in ANDROID STUDIO please.
Thank you