您好,
我有一个应用程序,需要从调用新类的类中调用一个方法
具体来说,我有一个活动类,在该类中我调用了我已实现的surfaceView
类。
我现在想在SurfaceView中发生某些事情时调用startActivity(intent)
。
由于我无法调用surfaceView
中的另一个活动,我想调用调用sufaceView
类的类中的方法。
到目前为止,我尝试过类似的事情:
public void startActivity() {
Start.lose();
}
Wheres Start是调用者类,我添加了类似import com.example.Start;
的函数和我调用的lost方法:
public static void lose(){
c.startActivity(new Intent(c,GameOver.class));
}
Wheres c是上下文(applicationContext是特定的)。我必须这样做,因为这个方法是static
,这是从静态方法调用活动的唯一方法,但它崩溃并且不会在logcat
中给出任何错误。
对我能在这做什么的任何建议?
好的,我的logcat
被窃听,现在我收到错误消息:
07-14 14:42:43.545: E/AndroidRuntime(13111): FATAL EXCEPTION: Thread-115
07-14 14:42:43.545: E/AndroidRuntime(13111): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
07-14 14:42:43.545: E/AndroidRuntime(13111): at android.app.ContextImpl.startActivity(ContextImpl.java:856)
07-14 14:42:43.545: E/AndroidRuntime(13111): at android.content.ContextWrapper.startActivity(ContextWrapper.java:276)
07-14 14:42:43.545: E/AndroidRuntime(13111): at com.example.fishtruck.Start.lose(Start.java:92)
07-14 14:42:43.545: E/AndroidRuntime(13111): at com.example.fishtruck.GameView.startActivity(GameView.java:314)
07-14 14:42:43.545: E/AndroidRuntime(13111): at com.example.fishtruck.GameView$GameThread.lose(GameView.java:227)
07-14 14:42:43.545: E/AndroidRuntime(13111): at com.example.fishtruck.GameView$GameThread.run(GameView.java:208)
答案 0 :(得分:0)
我这样修好了:
c.startActivity(new Intent(c,GameOver.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
感谢Kumar帮助我。