Android: Moved some code from onPause/onResume to loseFocus/gainFocus to address issues/patches 593, 566, 564. Users can now override loseFocus/gainFocus in MainActivity if they do not want to pause/resume the app based on Android's lifecycle methods onPause/onResume.
https://code.google.com/p/jmonkeyengine/issues/detail?id=593 https://code.google.com/p/jmonkeyengine/issues/detail?id=564 https://code.google.com/p/jmonkeyengine/issues/detail?id=566 (Yes, there were 3 patch requests for the same thing) git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10607 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
b5f4541eec
commit
0ff86728d8
@ -243,67 +243,16 @@ public class AndroidHarness extends Activity implements TouchListener, DialogInt
|
|||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
logger.fine("onResume");
|
logger.fine("onResume");
|
||||||
super.onResume();
|
super.onResume();
|
||||||
if (view != null) {
|
|
||||||
view.onResume();
|
|
||||||
}
|
|
||||||
if (app != null) {
|
|
||||||
//resume the audio
|
|
||||||
AudioRenderer result = app.getAudioRenderer();
|
|
||||||
if (result != null) {
|
|
||||||
if (result instanceof AndroidAudioRenderer) {
|
|
||||||
AndroidAudioRenderer renderer = (AndroidAudioRenderer) result;
|
|
||||||
renderer.resumeAll();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//resume the sensors (aka joysticks)
|
|
||||||
if (app.getContext() != null) {
|
|
||||||
JoyInput joyInput = app.getContext().getJoyInput();
|
|
||||||
if (joyInput != null) {
|
|
||||||
if (joyInput instanceof AndroidSensorJoyInput) {
|
|
||||||
AndroidSensorJoyInput androidJoyInput = (AndroidSensorJoyInput) joyInput;
|
|
||||||
androidJoyInput.resumeSensors();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
isGLThreadPaused = false;
|
|
||||||
|
|
||||||
gainFocus();
|
gainFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onPause() {
|
protected void onPause() {
|
||||||
|
logger.fine("onPause");
|
||||||
loseFocus();
|
loseFocus();
|
||||||
|
|
||||||
logger.fine("onPause");
|
|
||||||
super.onPause();
|
super.onPause();
|
||||||
if (view != null) {
|
|
||||||
view.onPause();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (app != null) {
|
|
||||||
//pause the audio
|
|
||||||
AudioRenderer result = app.getAudioRenderer();
|
|
||||||
if (result != null) {
|
|
||||||
logger.log(Level.FINE, "pause: {0}", result.getClass().getSimpleName());
|
|
||||||
if (result instanceof AndroidAudioRenderer) {
|
|
||||||
AndroidAudioRenderer renderer = (AndroidAudioRenderer) result;
|
|
||||||
renderer.pauseAll();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//pause the sensors (aka joysticks)
|
|
||||||
if (app.getContext() != null) {
|
|
||||||
JoyInput joyInput = app.getContext().getJoyInput();
|
|
||||||
if (joyInput != null) {
|
|
||||||
if (joyInput instanceof AndroidSensorJoyInput) {
|
|
||||||
AndroidSensorJoyInput androidJoyInput = (AndroidSensorJoyInput) joyInput;
|
|
||||||
androidJoyInput.pauseSensors();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
isGLThreadPaused = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -524,14 +473,70 @@ public class AndroidHarness extends Activity implements TouchListener, DialogInt
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void gainFocus() {
|
public void gainFocus() {
|
||||||
|
logger.fine("gainFocus");
|
||||||
|
if (view != null) {
|
||||||
|
view.onResume();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (app != null) {
|
||||||
|
//resume the audio
|
||||||
|
AudioRenderer result = app.getAudioRenderer();
|
||||||
|
if (result != null) {
|
||||||
|
if (result instanceof AndroidAudioRenderer) {
|
||||||
|
AndroidAudioRenderer renderer = (AndroidAudioRenderer) result;
|
||||||
|
renderer.resumeAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//resume the sensors (aka joysticks)
|
||||||
|
if (app.getContext() != null) {
|
||||||
|
JoyInput joyInput = app.getContext().getJoyInput();
|
||||||
|
if (joyInput != null) {
|
||||||
|
if (joyInput instanceof AndroidSensorJoyInput) {
|
||||||
|
AndroidSensorJoyInput androidJoyInput = (AndroidSensorJoyInput) joyInput;
|
||||||
|
androidJoyInput.resumeSensors();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
isGLThreadPaused = false;
|
||||||
|
|
||||||
if (app != null) {
|
if (app != null) {
|
||||||
app.gainFocus();
|
app.gainFocus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loseFocus() {
|
public void loseFocus() {
|
||||||
|
logger.fine("loseFocus");
|
||||||
if (app != null) {
|
if (app != null) {
|
||||||
app.loseFocus();
|
app.loseFocus();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (view != null) {
|
||||||
|
view.onPause();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (app != null) {
|
||||||
|
//pause the audio
|
||||||
|
AudioRenderer result = app.getAudioRenderer();
|
||||||
|
if (result != null) {
|
||||||
|
logger.log(Level.FINE, "pause: {0}", result.getClass().getSimpleName());
|
||||||
|
if (result instanceof AndroidAudioRenderer) {
|
||||||
|
AndroidAudioRenderer renderer = (AndroidAudioRenderer) result;
|
||||||
|
renderer.pauseAll();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//pause the sensors (aka joysticks)
|
||||||
|
if (app.getContext() != null) {
|
||||||
|
JoyInput joyInput = app.getContext().getJoyInput();
|
||||||
|
if (joyInput != null) {
|
||||||
|
if (joyInput instanceof AndroidSensorJoyInput) {
|
||||||
|
AndroidSensorJoyInput androidJoyInput = (AndroidSensorJoyInput) joyInput;
|
||||||
|
androidJoyInput.pauseSensors();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
isGLThreadPaused = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user