@Dutymy

Как оставить сервис после закрытия приложения?

Здравствуйте, я делаю свой первый скрин-маркер
и мне нужно чтоб оверлей оставался даже после закрытия приложения, но чтоб я мог включать/отключать оверлей из кнопки в приложении (если приложение открыто)
Как я могу это реализовать
Я использую
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;

    }
}
  • Вопрос задан
  • 93 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы