0

我的 android 应用程序有两个意图

  • 第一个:主窗口,

  • 第二个包含游戏视图(SurfaceView)。

    当用户按下“返回”按钮时,主窗口会在游戏视图缩进暂停(surfaceDestroyed)之前出现。

但是我需要在主窗口出现之前在游戏视图中运行一个方法。我一直坚持这个问题。

这里代码:

主窗口类:

@Override
public void onClick(final View v) {
    if (v.getId() == R.id.StartBtn) {
        final Intent myIntent = new Intent(getApplicationContext(),
                StartActivity.class);
        this.startActivity(myIntent);
    }
}

开始活动类

public class StartActivity extends Activity {
@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);
}


@Override
protected void onPause() {
    super.onPause();
}

@Override
protected void onSaveInstanceState(final Bundle outState) {
    super.onSaveInstanceState(outState);
}

游戏视图类

public class GameView extends SurfaceView implements SurfaceHolder.Callback {
    @Override
public void surfaceDestroyed(final SurfaceHolder arg0) {
            //Do some operations before destroing
    }    
}

布局activity_start

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".StartActivity" >

<com.somepackage.appname.GameView
  android:id="@+id/game_view"
  android:layout_width="match_parent"
  android:layout_height="match_parent"/>

 </RelativeLayout>

所以我需要在 onResume on MainWindow 意图之前在 GameView 中启动 surfaceDestroyed

4

3 回答 3

0

只需使用

Intent intent = new Intent(MainAWindow.this,StartActivity.class);
startActivity(intent);

你的 OnResume 方法在哪里?......正确解释你的问题你想要达到什么目的......?

于 2013-10-30T11:40:43.960 回答
0

我不确定这是否真的是 yiu 想要的,但我会试一试:

您需要在另一个 Activity 中有一个实例,然后才能在那里调用任何方法。您可以通过以下方式实现它:

 (OtherActivity) getActivity.myMethod();
于 2013-10-30T10:49:05.120 回答
0

使用 Activity.this 而不是 getApplicationContext()。那可能是问题所在。如果没有,请提供代码。

于 2013-10-30T10:55:06.433 回答