Мне нужен сервис для связи по Bluetooth.Иногда дела идут плохо.Я хочу показать это в Деятельности.Но как?Трансляции?sendbroadcast
неизвестно в handler
Я посмотрел на: Получение обработчика из потока из сервиса в действие Но я не понимаю.
Вот мои занятия:
public class TestService extends Service {
public ExampleLooper looperThread = new ExampleLooper();
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
String input = intent.getStringExtra("Nachricht");
Intent notificationIntent = new Intent(this, MainActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this,
0, notificationIntent, 0);
Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle("Rufknopf") // TODO in @string/... packen
.setContentText(input)
.setSmallIcon(R.drawable.ic_android)
.setContentIntent(pendingIntent)
.build();
startForeground(1, notification);
ExampleHandler handler = new ExampleHandler();
Message msg = Message.obtain();
msg.what = intent.getIntExtra("LooperMessage",-1);
looperThread.handler.sendMessage(msg);
// return super.onStartCommand(intent, flags, startId);
return START_NOT_STICKY;
}
@Override
public void onCreate(){
super.onCreate();
Log.d(TAG, "onCreate: Service das erste mal gestartet.");
looperThread.start();
}
@Override
public void onDestroy(){
Log.d(TAG, "onDestroy: ");
looperThread.looper.quit();
super.onDestroy();
}
}
public class ExampleLooper extends Thread {
private static final String TAG = "ExampleLooperThread";
public Looper looper;
public Handler handler;
@Override
public void run() {
Looper.prepare();
looper = Looper.myLooper();
handler = new ExampleHandler();
Looper.loop();
Log.d(TAG, "End of run()");
}
}
public class ExampleHandler extends Handler {
public static final int FALL1 = 10;
public static final int FALL2 = 20;
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch(msg.what){
case (FALL1):
Log.d(TAG, "handleMessage: Fall 1");
SystemClock.sleep(3000);
break;
case (FALL2):
Log.d(TAG, "handleMessage: Fall 2");
break;
default:
Log.e(TAG, "handleMessage: default kein passenden Wert gefunden"); //TODO in MainActivity Fehler anzeigen lassen
Log.e(TAG, "handleMessage: Error" );
break;
}
}
}