XashActivity: implement proper engine thread quit
This commit is contained in:
parent
7867a53895
commit
323e314714
1 changed files with 27 additions and 0 deletions
|
@ -241,6 +241,19 @@ public class XashActivity extends Activity {
|
|||
super.onResume();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStop() {
|
||||
Log.v(TAG, "onStop()");
|
||||
|
||||
// let engine properly exit, instead of killing it's thread
|
||||
nativeQuitEvent();
|
||||
// wait until Xash will exit
|
||||
mSurface.engineThreadJoin();
|
||||
|
||||
|
||||
super.onStop();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWindowFocusChanged(boolean hasFocus)
|
||||
{
|
||||
|
@ -266,6 +279,7 @@ public class XashActivity extends Activity {
|
|||
public static native void nativeBall(int id, byte ball, short xrel, short yrel);
|
||||
public static native void nativeJoyAdd( int id );
|
||||
public static native void nativeJoyDel( int id );
|
||||
public static native void nativeQuitEvent();
|
||||
|
||||
public static native int setenv(String key, String value, boolean overwrite);
|
||||
|
||||
|
@ -625,6 +639,19 @@ View.OnKeyListener {
|
|||
}
|
||||
}
|
||||
|
||||
public void engineThreadJoin()
|
||||
{
|
||||
Log.v(TAG, "engineThreadJoin()");
|
||||
try
|
||||
{
|
||||
mEngThread.join(); // wait until Xash will quit
|
||||
}
|
||||
catch(InterruptedException e)
|
||||
{
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// unused
|
||||
public void onDraw(Canvas canvas) {}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue