You can count on either getting onKeyUp(), onFocusChanged(), or onWindowFocusChanged().
On Thu, Apr 28, 2011 at 6:50 AM, Nguyen Dat <[email protected]> wrote: > Dear all, > > Relate with question can't dispatch event when change Activity, i have > litle concern about > Long press key event have abort while timing change Activity like > Scenario as bellow: > [Activit1] -> [Activity2] > > Does anyone known which class, method or document indicate while > change Activity key event have been clear ? > > Regards, > DatNQ > > P/s: > As my remember on old mobile platform writing in C/C++, when change > Screen, key event stack have clear: > clearKeyEventQueue() > > > > > > On Mar 12, 8:24 am, Dianne Hackborn <[email protected]> wrote: > > Correct you can't do this, very much by design. > > > > On Fri, Mar 11, 2011 at 7:05 AM, Justin Anderson <[email protected] > >wrote: > > > > > > > > > AFAIK that is not possible... I don't think you can redirect events to > > > other activities that you don't control. That would be a big security > risk. > > > > > Thanks, > > > Justin Anderson > > > MagouyaWare Developer > > >http://sites.google.com/site/magouyaware > > > > > On Fri, Mar 11, 2011 at 3:44 AM, praveen kumar < > > > [email protected]> wrote: > > > > >> Hi, > > >> I want to override the back key of the Android device to display a > > >> dialog, > > >> which consists of two buttons say "Back" and "Exit". when you press > > >> the Back button > > >> in dialog it should dispatch back key to the top activity which is > > >> currently running, i can able to get > > >> system context by adding following code snippet to > > >> <android_source_directory>frameworks/ > > >> base/services/java/com/android/server/WindowManagerService.java. > > > > >> ActivityThread at = ActivityThread.currentActivityThread(); > > >> if (at == null) { > > >> Looper.prepare(); > > >> at = ActivityThread.systemMain(); > > >> } > > >> if(at != null){ > > >> sysContext = at.getSystemContext(); > > >> Log.d(TAG, "SystemContext = " + sysContext); > > >> } > > > > >> to display the dialog i added following code > > >> Dialog dialog = new Dialog(myContext); > > >> dialog.setContentView(com.android.internal.R.layout.<my-layout-name>); > > >> dialog.setTitle("Custom Dialog"); > > >> dialog.show(); > > > > >> Using sysContext, I can able to display toast, and I can able to > > >> launch the activity, but > > >> when i try to display a dialog using the same sysContext i got the > > >> error saying, > > >> unable to add window "window token is null" it would be great if you > > >> give any input > > >> why it is not able to display dialog using sysConttext? > > > > >> i added the following code, snippet to get top activity pid > > > > >> am = (ActivityManager) > > >> myContext.getSystemService(Activity.ACTIVITY_SERVICE); > > >> currentPackageName = > > >> am.getRunningTasks(1).get(0).topActivity.getPackageName(); > > > > >> List<ActivityManager.RunningAppProcessInfo> processes; > > >> processes = am.getRunningAppProcesses(); > > >> for(ActivityManager.RunningAppProcessInfo info: processes) { > > >> Log.i("Process:", info.processName); > > >> if(currentPackageName.equalsIgnoreCase(info.processName)){ > > >> Log.i(TAG, "Found !"); > > >> mpid = info.pid; //pid of top Activity > > >> muid = 0; // will be always 0 > > >> } > > >> } > > > > >> private Handler msgHandler = new Handler(){ > > >> //this method will handle the calls from other threads. > > >> public void handleMessage(Message msg) { > > >> int result = -1; > > >> switch (msg.what) { > > >> case TPMUHelper.DISPATCH_BACK_KEY: > > >> Log.d(TAG, "Dispatching Back_Key"); > > >> code = KeyEvent.KEYCODE_BACK; > > >> KeyEvent backEvent = new KeyEvent(downTime, > > >> eventTime, > > >> action, code, repeatCount, metaState, > > >> deviceId, scancode, KeyEvent.FLAG_FROM_SYSTEM); > > >> Log.i(TAG, "PID = " + mpid + ", UID = " +muid); > > >> result = dispatchKey(backEvent, mpid, muid); > > >> Log.d(TAG, "Dispatch Key Returns = " + result); > > >> break; > > >> } > > >> } > > >> }; > > > > >> When i send "DISPATCH_BACK_KEY" message from my-activity "Back" button > > >> press event, it comes here > > >> and dispatch back key, dispatchkey(KeyEvent event, int pid, int uid) > > >> returns '1', i am success with > > >> this, however currently running activity is not getting closed. simply > > >> what i need is, i want to > > >> send back key to whichever the activity is currently running, (system > > >> application or 3rd party > > >> application). input regarding the same is appreciated. > > > > >> Thanks & Regards > > >> Praveen > > > > >> -- > > >> You received this message because you are subscribed to the Google > > >> Groups "Android Developers" group. > > >> To post to this group, send email to > [email protected] > > >> To unsubscribe from this group, send email to > > >> [email protected] > > >> For more options, visit this group at > > >>http://groups.google.com/group/android-developers?hl=en > > > > > -- > > > You received this message because you are subscribed to the Google > > > Groups "Android Developers" group. > > > To post to this group, send email to > [email protected] > > > To unsubscribe from this group, send email to > > > [email protected] > > > For more options, visit this group at > > >http://groups.google.com/group/android-developers?hl=en > > > > -- > > Dianne Hackborn > > Android framework engineer > > [email protected] > > > > Note: please don't send private questions to me, as I don't have time to > > provide private support, and so won't reply to such e-mails. All such > > questions should be posted on public forums, where I and others can see > and > > answer them. > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Dianne Hackborn Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support, and so won't reply to such e-mails. All such questions should be posted on public forums, where I and others can see and answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

