0

我有一個浮動按鈕是使用android.permission.SYSTEM_ALERT_WINDOW所有的窗戶上面的這幅畫,我是什麼要完成的是一次我按下就可以了,我開始ProjectionMedia API這裏我是什麼做的:開始ProjectionMedia

//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該應用程序不會執行任何操作,並且logact中沒有任何內容,我在這裏丟失了什麼?

回答

-1

首先,您正在泄漏與該活動及其引用的所有內容(視圖,這些視圖中的內容等)相關的內存。

其次,一旦活動被破壞,不能再使用它,比如對於像startActivityForResult().

你需要展示你的浮動窗口前做從活動整體startActivityForResult()工作。請參閱this sample app,其中我使用Notification而不是浮動窗口。