调用者类中的触发器方法

时间:2014-07-14 12:34:04

标签: android android-activity surfaceview static-methods

您好,
我有一个应用程序,需要从调用新类的类中调用一个方法 具体来说,我有一个活动类,在该类中我调用了我已实现的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)

1 个答案:

答案 0 :(得分:0)

我这样修好了:

c.startActivity(new Intent(c,GameOver.class).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

感谢Kumar帮助我。