Я использую карты 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 загружается, но ошибка все равно возникает.