@@ -180,7 +180,15 @@ public boolean shouldOverrideUrlLoading(WebView view, String url) {
180180
181181 final Thread wvThread = new Thread (new WebViewLoaderMain (), "WvThread" );
182182 wvThread .start ();
183+ }
183184
185+ @ Override
186+ public void onDestroy () {
187+ Log .i ("Destroy" , "end of app" );
188+ super .onDestroy ();
189+
190+ // make sure all child threads (python_thread) are stopped
191+ android .os .Process .killProcess (android .os .Process .myPid ());
184192 }
185193
186194 public void loadLibraries () {
@@ -297,6 +305,27 @@ public static ViewGroup getLayout() {
297305 return mLayout ;
298306 }
299307
308+ long lastBackClick = SystemClock .elapsedRealtime ();
309+ @ Override
310+ public boolean onKeyDown (int keyCode , KeyEvent event ) {
311+ // Check if the key event was the Back button and if there's history
312+ if ((keyCode == KeyEvent .KEYCODE_BACK ) && mWebView .canGoBack ()) {
313+ mWebView .goBack ();
314+ return true ;
315+ }
316+ // If it wasn't the Back key or there's no web page history, bubble up to the default
317+ // system behavior (probably exit the activity)
318+ if (SystemClock .elapsedRealtime () - lastBackClick > 2000 ){
319+ lastBackClick = SystemClock .elapsedRealtime ();
320+ Toast .makeText (this , "Click again to close the app" ,
321+ Toast .LENGTH_LONG ).show ();
322+ return true ;
323+ }
324+
325+ lastBackClick = SystemClock .elapsedRealtime ();
326+ return super .onKeyDown (keyCode , event );
327+ }
328+
300329
301330 //----------------------------------------------------------------------------
302331 // Listener interface for onNewIntent
@@ -367,7 +396,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent intent)
367396 }
368397 }
369398
370- public static void start_service (String serviceTitle , String serviceDescription ,
399+ public static void start_service (String serviceTitle , String serviceDescription ,
371400 String pythonServiceArgument ) {
372401 Intent serviceIntent = new Intent (PythonActivity .mActivity , PythonService .class );
373402 String argument = PythonActivity .mActivity .getFilesDir ().getAbsolutePath ();
0 commit comments