Здравствуйте, я делаю свой первый скрин-маркер
и мне нужно чтоб оверлей оставался даже после закрытия приложения, но чтоб я мог включать/отключать оверлей из кнопки в приложении (если приложение открыто)
Как я могу это реализовать
Я использую
Intent overlayServiceIntent = new Intent(this, OverlayService.class);
bindService(overlayServiceIntent, overlayConnection, Context.BIND_AUTO_CREATE);
чтоб запустить сервис
и
Intent overlayServiceIntent = new Intent(this, OverlayService.class);
stopService(overlayServiceIntent);
чтоб остановить
(onDestroy вызивается, но кнопка не пропадает) также кнопка пропадает при закрытии приложения (а хочу чтоб она осталась даже при закрытом приложении - как такое реализовать) (насколько я понимаю используя startService я не смогу закрыть сервис из приложения... или я не прав...)
сам оверлей-класс
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.graphics.PixelFormat;
import android.os.IBinder;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.Toast;
public class OverlayService extends Service {
Button overlayedButton;
WindowManager wm;
@Override
public IBinder onBind(Intent intent) {
Toast.makeText(this, "Hi", Toast.LENGTH_LONG).show();
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
overlayedButton = new Button(this);
overlayedButton.setText("Overlay button");
WindowManager.LayoutParams params = new WindowManager.LayoutParams(WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.WRAP_CONTENT, WindowManager.LayoutParams.TYPE_SYSTEM_ALERT, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, PixelFormat.TRANSLUCENT);
wm.addView(overlayedButton, params);
return null;
}
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Bye", Toast.LENGTH_LONG).show();
wm.removeView(overlayedButton);
overlayedButton = null;
}
}