package com.antfortune.freeline; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.os.Process; import android.os.SystemClock; import android.util.Log; import android.widget.TextView; public class MiddlewareActivity extends Activity { private static final String TAG = "Freeline.MiddlewareAct"; private static final Handler HANDLER = new Handler(Looper.getMainLooper()); private static final long RESET_WAIT = 1000L; private long createTime; private boolean ready; private int back; private final Runnable reset = new Runnable() { public void run() { Log.d(TAG, "kill process: " + Process.myPid()); Process.killProcess(Process.myPid()); } }; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setGravity(17); tv.setText("building increment app..."); setContentView(tv); this.createTime = SystemClock.uptimeMillis(); this.ready = getIntent().getBooleanExtra("reset", false); if (this.ready) { reset(); } } protected void onDestroy() { HANDLER.removeCallbacks(this.reset); super.onDestroy(); } public void reset() { this.ready = true; HANDLER.removeCallbacks(this.reset); long d = SystemClock.uptimeMillis() - this.createTime; if (d > RESET_WAIT) { HANDLER.postDelayed(this.reset, 100L); } else { HANDLER.postDelayed(this.reset, RESET_WAIT - d); } } public void onBackPressed() { if (this.back++ > 0) { if (this.ready) { this.reset.run(); } super.onBackPressed(); } } }