2

我在我的 DroidGap 类上设置了一个 javascript 接口,

mc = new MyClass(this, appView);
appView.addJavascriptInterface(mc, "MyCls");

我从中启动媒体播放器

  public void playAudio(String audioFile){
      copyFileToDir(audioFile);
      File dest = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC + "/" + audioFile + ".mp3");
      Uri r = Uri.fromFile(dest);         
      Intent viewMediaIntent = new Intent();   
      viewMediaIntent.setAction(android.content.Intent.ACTION_VIEW);                                 
      viewMediaIntent.setDataAndType(r, "audio/*");   
      viewMediaIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);          
      Intent i = Intent.createChooser(viewMediaIntent, "Play Music");
        mGap.startActivity(i);

  }

但是当我这样做时,当我按下返回时,我的应用程序不再运行,我被发送到主屏幕。我尝试将 keepRunning 设置为 true 但没有太大帮助。

super.setBooleanProperty("keepRunning", true);

即使我开始另一个活动,我怎样才能让它继续运行?

更新

现在它变得更奇怪了。该活动不会在运行 4.2 的 nexus 7、运行 2.2 的 HTC 愿望/Htc Bravo 上被破坏,但在运行 4.1.2 的我的 Galaxy s3 上失败。关于如何找出原因的任何想法?

4

1 回答 1

2

我的问题是自己造成的。有一个选项Settings -> Developer Options -> Apps被调用do not keep activities。一旦用户离开它,它就会破坏每个活动。所以一旦我取消了那个可爱的复选框,我的问题就解决了。

于 2013-02-01T11:28:11.730 回答