- Forum-Beiträge: 24
06.12.2014, 15:28:33 via Website
06.12.2014 15:28:33 via Website
In meiner MainActivitiy definiere ich einen Handler, der die Resultate der Klasse „Aufgaben“ (Bluetooth-Abfrage) übernimmt. Dies läuft alles wie es soll:
public class MainActivity extends Activity{
….
if (mAufgaben == null) {
mAufgaben = new Aufgaben(this, mHandler);
mAufgaben.start();
}
mAufgaben.connect(device);
….
public Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
MessageType message = MessageType.from(msg.what);
….
public static class MyReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent){
Bundle extras = intent.getExtras();
Intent service1 = new Intent(context, mService.class);
service1.putExtra("MAC", mac_data);
context.startService(service1);
}
}
public class Aufgaben {
private final Handler mHandler;
public Aufgaben(Context context, Handler handler) {
…
mHandler = handler;
}
public synchronized void start() {
….
}
Message msg = mHandler.obtainMessage(MessageType.DEVICE_NAME.val());
Bundle bundle = new Bundle();
bundle.putString(MessageType.DEVICE_NAME.toString(), device.getName());
msg.setData(bundle);
mHandler.sendMessage(msg);
Bis hier funktioniert alles wie es soll!
Neu möchte ich von einem Service, der im Background läuft, auch auf die Klasse Aufgaben zugreifen (Initiierung neues Objekt und Start der Aufgaben). Die Resultate sollen wieder in der MainActivity verfügbar sein mittels gleichem Handler.
public class mService extends Service{
….
if (mAufgaben == null) {
mAufgaben = new Aufgaben(this, mHandler);
mAufgaben.start();
}
mAufgaben.connect(device);
Der in der MainActivity definierte Handler ist jedoch in Service nicht bekannt (mHandler cannot be resolved!!). Wie kann ich von mService auf „Aufgaben“ zugreifen und die Resultate in der MainActivity erhalten?
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.