Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从子目的运行方法_Java_Android_Android Intent - Fatal编程技术网

Java 如何从子目的运行方法

Java 如何从子目的运行方法,java,android,android-intent,Java,Android,Android Intent,我的android应用程序有两个意图 第一个:主窗口 第二个包含游戏视图(SurfaceView) 当用户按下“返回”按钮时,在游戏视图缩进暂停(surfaceDestroyed)之前出现主窗口 但是,在主窗口出现之前,我需要在游戏视图中运行一个方法。我一直坚持这个问题 此处代码: 主窗口类: @Override public void onClick(final View v) { if (v.getId() == R.id.StartBtn) { final

我的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);
    }
}
StartActivity类

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
    }    
}
游戏视图类

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
    }    
}
布局活动\u开始

<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>


因此,我需要先在GameView中启动surfaceDestroyed,然后再在主窗口上恢复。我不确定这是否真的是yiu想要的,但我会尝试一下:

在调用其他活动中的任何方法之前,需要在其他活动中有一个实例。您可以使用以下方法实现此目标:

 (OtherActivity) getActivity.myMethod();

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

只需使用

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

你的恢复方法在哪里?。。。正确地解释你的问题,你到底想达到什么目的?

请提供一些代码。我在我的第一篇博文中添加了一些代码。在MainWindow类中,这些代码丢失了。在主窗口中调试OnResume时,在GameView类中SurfacedStroyed运行之前启动。但是我需要在主窗口的onResume之前执行这个方法