仅在纵向模式下泄露IntentReceiver

时间:2014-03-21 04:48:32

标签: android android-intent memory-leaks broadcastreceiver

在发布任何解决方案之前,我请求您完全阅读

问题:

面对异常

03-12 14:13:20.936: E/ActivityThread(6629): Activity
com.sec.android.app.videoplayer.activity.VPVideoPlayer has leaked IntentReceiver
com.android.internal.policy.impl.multiwindow.MultiPhoneWindowEvent$3@424e3698 that
was originally registered here. Are you missing a call to unregisterReceiver()?

当用户通过其中一个活动打开视频并在视频完成后the app closes Unfortunately将屏幕方向从横向切换为纵向。

  

直到现在才在三星n 8000设备中观察

搜索后:

我获得解决方案的所有地方registerReceiver& unregisterReceiver。但是活动中的代码没有这样的东西。所以我不知道该怎么做才能解决它。

情境:

支持我activity1调用activity2

所有活动screenOrientation="landscape"

现在假设activity2如下:

public class activity2 extends Activity {

  @Override
   public void onCreate(Bundle savedInstanceState) {
        //initialize UI
            ....
       /*call asynctask to download file(file can be of any format i.e.pdf,
        video,etc)*/
      try {
                new DownloadAndOpenFile().execute(filePath);
          } catch (Exception e) {
                e.printStackTrace();
          }
      }
   }

下载文件后,使用以下方法打开文件: -

public void openDownloadedFile(String filePath) {
        try {

            Uri data = Uri.parse(filePath);

            String type = getMimeType(data.toString());

            Intent intent = new Intent(android.content.Intent.ACTION_VIEW);
            intent.setDataAndType(data, type);
            startActivity(intent);

        } catch (Exception e) {
            e.printStackTrace();
            AlertDialog alertDialog = AlertDialogBox.alertDialog(this,
                    "No Supported Application found to open this file");
            alertDialog.show();
        }
    }

视频完成后,控件应转到Activity1,以便Activity2的{​​{1}}如下:

onRestart()

一定是出错了,很明显。但是不知道如何纠正它。
请帮助找到上述问题的相关解决方案。

提前感谢您的帮助。

0 个答案:

没有答案