[TIMOB-1975] Android: Showing JS error dialog (rhino dialog) can FC app if activity has finished
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | Low |
| Status | Closed |
| Resolution | Fixed |
| Resolution Date | 2011-04-17T01:57:42.000+0000 |
| Affected Version/s | n/a |
| Fix Version/s | Release 1.5.0 |
| Components | Android |
| Labels | android, defect |
| Reporter | Bill Dawson |
| Assignee | Bill Dawson |
| Created | 2011-04-15T03:07:00.000+0000 |
| Updated | 2011-04-17T01:57:42.000+0000 |
Description
Attempting to show an error dialog inside the JS (our
doRhinoDialog in TiContext) FCs the app
if the activity belonging to the context that is attempting to show
the dialog has finished.
This can happen, for example, if a user backs out of a heavyweight window while a separate thread (like an XHR callback, which is how we found out about this problem) is running JS in that window's context and comes across an error.
For a failcase, use this app.js and then win.js.
app.js:
Titanium.UI.setBackgroundColor('#000');
Titanium.UI.createWindow({
title:'Test',
backgroundColor:'#fff',
fullscreen: true,
url: 'win.js'
}).open();
win.js:
var win = Ti.UI.currentWindow;
win.addEventListener('close', function(){
Ti.API.info(win.nonsense.nonsense);
});
The FC is this exception:
android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.BinderProxy@45d433c8 is not valid; is your activity running?
at android.view.ViewRoot.setView(ViewRoot.java:509)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
at android.view.Window$LocalWindowManager.addView(Window.java:424)
at android.app.Dialog.show(Dialog.java:241)
at org.appcelerator.titanium.TiContext$1.run(TiContext.java:811)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:
(from [480434de05223577f1903689349b567fd8cfccd7]) [#1975 state:fixed-in-qa] Check if activity finished/finishing before attempting to display dialog in it http://github.com/appcelerator/titanium_mobile/commit/480434de05223577f1903689349b567fd8cfccd7"> http://github.com/appcelerator/titanium_mobile/commit/480434de05223...
1.4.2.4ce7ff G1 running 1.6, 2.2 simulator