Как начать новую деятельность? - PullRequest
0 голосов
/ 12 февраля 2012

Я использую карты Google в своем приложении, и мне нужно открыть приложение YouTube, когда пользователь коснется какой-нибудь интересной точки на карте.

Ниже приведены мой метод onTap() и новая активность videoPlayer.Когда я запускаю это, выдает ошибку принудительного закрытия.Что я здесь не так делаю?

protected boolean onTap(int index) {
       OverlayItem item = mOverlays.get(index);
       Intent intent=new Intent(mContext,VideoPlayer.class);
       mContext.startActivity(intent);
       return true;
    }

Активность VideoPlayer:

public class VideoPlayer extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
      String vid= Uri.parse("").getQueryParameter("v");
      Intent intent = new Intent(Intent.ACTION_VIEW,  Uri.parse("vnd.youtube:" + vid)); 
      try {
        startActivity(intent);
      }
      catch (ActivityNotFoundException ex) {
        System.out.print("Couldn't find activity to view this video");
      }
    }
  }

Ниже приведена ошибка в каталоге:

02-12 14:37: 31.712: ERROR / AndroidRuntime (5782): android.util.AndroidRuntimeException: для вызова startActivity () вне контекста Activity требуется флаг FLAG_ACTIVITY_NEW_TASK.Это действительно то, что вы хотите?

Он срабатывает при выполнении mContext.startActivity(intent);.

РЕДАКТИРОВАТЬ 1

ОК Я изменил свой код следующим образом:

   protected boolean onTap(int index) {
     OverlayItem item = mOverlays.get(index);
     Intent intent=new Intent(mContext,VideoPlayer.class);
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // changed
     mContext.startActivity(intent);
     return true;
   }

Теперь приложение YouTube загружается, но ошибка все равно возникает.

...