从服务启动ProjectionMedia

时间:2016-06-08 15:01:36

标签: android android-service android-windowmanager android-mediaprojection

我有一个浮动按钮正在使用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 个答案:

答案 0 :(得分:-1)

首先,您泄漏与该活动相关的内存及其引用的所有内容(视图,这些视图中的内容等)。

其次,一旦活动被破坏,你就不能再使用了它,例如像startActivityForResult().

这样的东西

在显示浮动窗口之前,您需要从活动中完成整个startActivityForResult()工作。请参阅this sample app,我使用Notification而不是浮动窗口。