【问题标题】:Start ProjectionMedia from a service从服务启动 ProjectionMedia
【发布时间】:2016-06-08 15:01:35
【问题描述】:

我有一个浮动按钮正在使用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,所以我可以从服务中访问它,但是一旦我从Service 调用Capture,应用程序不会做任何事情,并且@ 中没有任何内容987654328@ ,我在这里缺少什么?

【问题讨论】:

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


    【解决方案1】:

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

    其次,一旦activity被销毁,就不能再使用了,比如startActivityForResult().之类的东西

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-21
      • 2011-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多