19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* //device/apps/AndroidTests/src/com.android.unit_tests/activity/TestedScreen.java
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2006, The Android Open Source Project
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** you may not use this file except in compliance with the License.
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** You may obtain a copy of the License at
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** See the License for the specific language governing permissions and
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** limitations under the License.
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
181a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyenpackage android.app.activity;
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.Intent;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Bundle;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Handler;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Process;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class RemoteSubActivityScreen extends SubActivityScreen {
278a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock    Handler mHandler = new Handler();
288a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock    boolean mFirst = false;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public RemoteSubActivityScreen() {
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @Override
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void onCreate(Bundle icicle) {
358a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock        // We are running in a remote process, so want to have the sub-activity
368a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock        // sending the result back in the original process.
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Intent intent = getIntent();
388a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock        intent.setClass(this, SubActivityScreen.class);
398a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.onCreate(icicle);
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        boolean kill = intent.getBooleanExtra("kill", false);
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        //Log.i("foo", "RemoteSubActivityScreen pid=" + Process.myPid()
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        //        + " kill=" + kill);
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (kill) {
478a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock            // After finishing initialization, kill the process!  But only if
488a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock            // this is the first time...
498a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock            if (icicle == null) {
508a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock                mHandler.post(new Runnable() {
518a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock                    public void run() {
528a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock                        handleBeforeStopping();
538a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock                        Process.killProcess(Process.myPid());
548a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock                    }
558a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock                });
568a985d24ce9a38f40ed88fecbdcd0e75e3a68f44John Spurlock            }
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
60