Sto implementando il servizio Paho MQTT Android all'interno di un'applicazione che sto sviluppando. Dopo aver testato l'applicazione di esempio fornita da Paho, ho scoperto che ci sono alcune cose che vorrei cambiare.Paho MQTT Servizio Android Numero
https://eclipse.org/paho/clients/android/
Il servizio applicazioni sembra spegnere una volta che l'applicazione è completamente chiusa. Vorrei mantenere il servizio in esecuzione anche dopo la chiusura dell'applicazione nel caso in cui arrivino altri messaggi. Sto anche cercando un modo per aprire l'applicazione a un'attività specifica una volta ricevuto un nuovo messaggio.
Ecco uno dei callback che viene chiamato quando arriva un messaggio, ho cercato di implementare un semplice startActivity per aprire una specifica attività, ma non funziona se l'applicazione è chiusa /non è più in esecuzione.
Se qualcuno ha lavorato con il servizio Android PAHO MQTT, Esiste un modo specifico per impedire l'interruzione del servizio quando l'applicazione viene chiusa e come posso riaprire l'applicazione quando arriva un messaggio?
/**
* @see org.eclipse.paho.client.mqttv3.MqttCallback#messageArrived(java.lang.String,
* org.eclipse.paho.client.mqttv3.MqttMessage)
*/
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
// Get connection object associated with this object
Connection c = Connections.getInstance(context).getConnection(clientHandle);
// create arguments to format message arrived notifcation string
String[] args = new String[2];
args[0] = new String(message.getPayload());
args[1] = topic + ";qos:" + message.getQos() + ";retained:" + message.isRetained();
// get the string from strings.xml and format
String messageString = context.getString(R.string.messageRecieved, (Object[]) args);
// create intent to start activity
Intent intent = new Intent();
intent.setClassName(context, "org.eclipse.paho.android.service.sample.ConnectionDetails");
intent.putExtra("handle", clientHandle);
// format string args
Object[] notifyArgs = new String[3];
notifyArgs[0] = c.getId();
notifyArgs[1] = new String(message.getPayload());
notifyArgs[2] = topic;
// notify the user
Notify.notifcation(context, context.getString(R.string.notification, notifyArgs), intent,
R.string.notifyTitle);
// update client history
c.addAction(messageString);
Log.e("Message Arrived", "MESSAGE ARRIVED CALLBACK");
// used to open the application if it is currently not active
Intent i = new Intent(context, ConnectionDetails.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("handle", clientHandle);
context.startActivity(i);
}
Qualche possibilità sei riuscito a risolvere? –
Purtroppo no. Mi sono trasferito a lavorare con un esempio diverso. Pubblicherò una soluzione se la trovo. –
Ok, grazie. –