Запустите ProjectionMedia из службы

У меня есть плавающая кнопка рисования с помощью android.permission.SYSTEM_ALERT_WINDOW выше всех окон, что я пытаюсь сделать, как только я нажимаю на него, я начинаю ProjectionMedia API вот что я делаю:

//passing to it the Main activity
  public MyManager(Activity activity) {
        this.activity = activity;
        // call for the projection manager
        mProjectionManager = (MediaProjectionManager) activity.getSystemService(Context.MEDIA_PROJECTION_SERVICE);
    }

 public void Capture() {
        isWorking = true;
        mHandler = new Handler();
        Intent i = mProjectionManager.createScreenCaptureIntent();
       // i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        activity.startActivityForResult(i, REQUEST_CODE);

    }

И в MainActivity я имею static MyManager так что я могу получить доступ к нему из службы, но как только я позвоню Capture от Service приложение ничего не делает, и в logact что мне здесь не хватает?

1 ответ

Во-первых, вы теряете память, связанную с этим действием и всем, на что оно ссылается (представления, содержимое в этих представлениях и т. Д.).

Во-вторых, когда действие уничтожено, вы больше не можете его использовать, например, для таких вещей, как startActivityForResult().

Вы должны сделать все startActivityForResult() работать от вашей деятельности, прежде чем показывать ваше плавающее окно. Посмотрите этот пример приложения, где я использую Notification вместо плавающего окна.

Другие вопросы по тегам