1b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn/*
2b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn**
3b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** Copyright 2009, The Android Open Source Project
4b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn**
5b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** Licensed under the Apache License, Version 2.0 (the "License");
6b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** you may not use this file except in compliance with the License.
7b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** You may obtain a copy of the License at
8b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn**
9b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn**     http://www.apache.org/licenses/LICENSE-2.0
10b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn**
11b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** Unless required by applicable law or agreed to in writing, software
12b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** distributed under the License is distributed on an "AS IS" BASIS,
13b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** See the License for the specific language governing permissions and
15b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn** limitations under the License.
16b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn*/
17b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
18b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackbornpackage android.app;
19b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
20b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackbornimport android.content.Intent;
21b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
22b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn/**
23b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn * Testing interface to monitor what is happening in the activity manager
24b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn * while tests are running.  Not for normal application development.
25b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn * {@hide}
26b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn */
27b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborninterface IActivityController
28b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn{
29b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    /**
30b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * The system is trying to start an activity.  Return true to allow
31b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * it to be started as normal, or false to cancel/reject this activity.
32b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     */
33b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    boolean activityStarting(in Intent intent, String pkg);
34b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
35b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    /**
36b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * The system is trying to return to an activity.  Return true to allow
37b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * it to be resumed as normal, or false to cancel/reject this activity.
38b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     */
39b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    boolean activityResuming(String pkg);
40b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
41b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    /**
42b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * An application process has crashed (in Java).  Return true for the
43b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * normal error recovery (app crash dialog) to occur, false to kill
44b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * it immediately.
45b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     */
46b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor    boolean appCrashed(String processName, int pid,
4760d8762413e8daba5f73559786312a9ec5e3b827Dan Egnor            String shortMsg, String longMsg,
48b7f0367cec1c744aa66ef397b0244e25d507491cDan Egnor            long timeMillis, String stackTrace);
49b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn
50b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    /**
51287952c35e148811c106bc0f5036eabf20f71562Dianne Hackborn     * Early call as soon as an ANR is detected.
52287952c35e148811c106bc0f5036eabf20f71562Dianne Hackborn     */
53287952c35e148811c106bc0f5036eabf20f71562Dianne Hackborn    int appEarlyNotResponding(String processName, int pid, String annotation);
54287952c35e148811c106bc0f5036eabf20f71562Dianne Hackborn
55287952c35e148811c106bc0f5036eabf20f71562Dianne Hackborn    /**
56b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * An application process is not responding.  Return 0 to show the "app
57b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * not responding" dialog, 1 to continue waiting, or -1 to kill it
58b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     * immediately.
59b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn     */
60b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn    int appNotResponding(String processName, int pid, String processStats);
615b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn
625b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn    /**
635b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn     * The system process watchdog has detected that the system seems to be
645b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn     * hung.  Return 1 to continue waiting, or -1 to let it continue with its
655b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn     * normal kill.
665b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn     */
675b88a2fd7b77880f6e09ae4a1de509bebe28bc3aDianne Hackborn    int systemNotResponding(String msg);
68b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0Dianne Hackborn}
69