Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.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
基于线程游戏的Android生命周期_Android_Lifecycle - Fatal编程技术网

基于线程游戏的Android生命周期

基于线程游戏的Android生命周期,android,lifecycle,Android,Lifecycle,例如,在被用户置于后台或打电话后,我在尝试让游戏正常运行时遇到了一些麻烦 我的应用程序有一个名为GameView的SurfaceView类,它有一个onDraw方法来为我的游戏绘制所有必要的图形,还有两个线程——一个用于调用onDraw,另一个用于为游戏逻辑进行必要的计算 我成功地实现了暂停和恢复。我在按下后退按钮时暂停了两个线程,并在用户在AlertDialog中取消后恢复它们 现在我想让游戏暂停的方式与调用onStop时相同。我将两个线程都置于暂停状态,并将我的字符位置保存在savedIns

例如,在被用户置于后台或打电话后,我在尝试让游戏正常运行时遇到了一些麻烦

我的应用程序有一个名为GameView的SurfaceView类,它有一个onDraw方法来为我的游戏绘制所有必要的图形,还有两个线程——一个用于调用onDraw,另一个用于为游戏逻辑进行必要的计算

我成功地实现了暂停和恢复。我在按下后退按钮时暂停了两个线程,并在用户在AlertDialog中取消后恢复它们

现在我想让游戏暂停的方式与调用onStop时相同。我将两个线程都置于暂停状态,并将我的字符位置保存在savedInstanceState中,但当我再次启动应用程序时,没有调用任何方法,我使用Logcat进行了检查。我认为应该先调用onRestart,然后调用onStart,然后调用onResume,但这一切都不会发生。我做错了什么


没有包含任何代码,因为这似乎是我不理解生命周期的问题,而不是代码中的问题。如果有必要,我将发布您请求的部件。

如果用户返回您的游戏,至少必须调用onResume。您是否100%确定未调用onResume?。您可以将您对生命周期的理解与此处的文档进行比较。根据LogCat,没有调用任何方法,是否有可能在调用这些方法之前游戏崩溃?当用户最小化应用程序时,它可能已经崩溃了?当我再次启动应用程序时,它会显示与关闭应用程序时看到的相同的图片,但它完全没有响应。崩溃应该会显示在您的日志中。无响应表示有东西阻塞了主线程。可能是阻塞代码阻止了onResume方法的执行。尝试将日志消息或断点放在onResume和onCreate方法的顶部。甚至在调用super.onResume和super.onCreate.之前,当我关闭屏幕时,它会调用onPause和onStop。当我使用home按钮最小化时,它只会调用onPause。但是当我恢复它时,什么都不会被调用,我把日志放在super之前。打电话……那很好。决定是暂停还是暂停并停止您的活动取决于android。还原时必须调用某些内容。。。否则你什么也看不到:。也许您应该使用调试器和断点来分析发生了什么。