Запустите 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
вместо плавающего окна.