{ "id": "173204", "key": "TIMOB-26914", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "20432", "name": "Release 8.0.1", "archived": false, "released": true, "releaseDate": "2019-05-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-04-29T15:06:34.000+0000", "created": "2019-03-16T14:29:35.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "engSchedule", "freeze", "regression", "restart" ], "versions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" } ], "issuelinks": [ { "id": "57474", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "173418", "key": "AC-6187", "fields": { "summary": "Empty screen after a long time of inactivity", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-04-29T18:29:05.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "*Summary:*\r\nIf the OS force-quits the app (such as due to low memory), then when you relaunch the app later, it'll show a blank window as of Titanium 8.0.0.\r\n\r\nThis is not an issue if the end-user force-quits the app.\r\nThis is not an issue when the app is launched via a data intent such as URL scheme or notification.\r\n\r\nThis was not an issue before Titanium 8.0.0 _(the old code would schedule an app restart)_.\r\n\r\n*Steps to reproduce:*\r\n# On Android, go to its \"Developer Options\" screen.\r\n# Tap on the \"Background process limit\" row. _(It's near the bottom of the list.)_\r\n# Tap on \"No background processes\". _(This tells the OS to force quit the last displayed app when launching another app.)_\r\n# Create a \"Classic\" default Titanium project.\r\n# Build and run on the same Android device configured above.\r\n# Wait for the app to launch.\r\n# Tap on the Android \"Home\" button.\r\n# Launch a different app such as \"Gmail\".\r\n# Tap on the Android \"Home\" button.\r\n# Resume the Titanium app.\r\n\r\n*Result:*\r\nWhen resuming/relaunching the app, a blank window is displayed.\r\n\r\n*Expected Result:*\r\nSince the app was forced-quit by the OS, the app should restart normally, starting with the splash screen.\r\n\r\n*Note:*\r\nWhen the Android OS force-quits the app, next time you relaunch it with the same intent, the OS will attempt to restore it back to its previous state starting with its top-most child activity. The OS will recreate the activities in reverse order, starting with the last displayed top-most child activity and ending with the root activity. The OS won't attempt to restore/recreate the parent activity until you close/finish/destroy the child activity.\r\n\r\nThe OS won't perform the above restore behavior if the end-user force-quits the app.\r\n\r\n_(Ticket description was rewritten now that issue has been isolated.)_", "attachment": [ { "id": "66321", "filename": "test_restart.zip", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-03-16T14:28:12.000+0000", "size": 3397832, "mimeType": "application/zip" }, { "id": "66322", "filename": "ti_log2.txt", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-03-16T14:27:33.000+0000", "size": 3077, "mimeType": "text/plain" } ], "flagged": false, "summary": "Android: An OS forced-quit app displays a blank window upon relaunch as of 8.0.0", "creator": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 1123, "state": "closed", "name": "2019 Sprint 7", "startDate": "2019-03-18T17:27:25.993Z", "endDate": "2019-03-30T17:27:00.000Z", "completeDate": "2019-03-29T18:02:37.441Z", "originBoardId": 114 }, { "id": 1124, "state": "closed", "name": "2019 Sprint 8", "startDate": "2019-03-31T18:03:00.000Z", "endDate": "2019-04-12T18:03:00.000Z", "completeDate": "2019-04-12T19:04:50.175Z", "originBoardId": 114 }, { "id": 1128, "state": "closed", "name": "2019 Sprint 9", "startDate": "2019-04-14T19:05:00.000Z", "endDate": "2019-04-26T19:05:00.000Z", "completeDate": "2019-04-26T22:05:13.933Z", "originBoardId": 114 }, { "id": 1129, "state": "closed", "name": "2019 Sprint 10", "startDate": "2019-04-28T22:06:00.000Z", "endDate": "2019-05-17T22:06:00.000Z", "completeDate": "2019-05-20T16:48:42.522Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "446935", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, I have tested your sample app in Android 9 device. I followed your step of backgrounding the app and remain until the process stops and shown in the log. Now, going back to the backgrounded app and opening it, I see no black screen, just the white window I suppose to see. Is the issue is only with Android 7 device? Can you try with a different version of Android? Thanks.", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2019-03-17T17:03:36.000+0000", "updated": "2019-03-17T17:03:36.000+0000" }, { "id": "446957", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I can reproduce this issue if I set Android's \"Background process limit\" to {{1}} under \"Developer Options\".\r\n\r\nThe issue does not happen if the app has a service running.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-03-19T00:16:49.000+0000", "updated": "2019-03-19T00:16:49.000+0000" }, { "id": "447002", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "-PR (master): https:// github.com/appcelerator/titanium_mobile/pull/10787-\r\n-PR (8.0.x): https:// github.com/appcelerator/titanium_mobile/pull/10790-\r\n\r\n*_Edit:_*\r\n_Closing the above PRs since it'll still display a blank window when system developer option \"Don't keep activities\" is enabled. My PRs below is the better solution._", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-03-20T04:48:08.000+0000", "updated": "2019-04-12T02:00:34.000+0000" }, { "id": "447381", "author": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "body": "In my app a foreground service with notification will started and the issue with gray screen happens nevertheless.", "updateAuthor": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-03-31T13:00:30.000+0000", "updated": "2019-03-31T13:00:30.000+0000" }, { "id": "447637", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/10829", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-04-12T01:57:37.000+0000", "updated": "2019-04-12T01:57:37.000+0000" }, { "id": "447995", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (8.0.x): https://github.com/appcelerator/titanium_mobile/pull/10868", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-04-26T22:32:01.000+0000", "updated": "2019-04-26T22:32:01.000+0000" }, { "id": "448005", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR passed PR merged.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-04-26T23:17:46.000+0000", "updated": "2019-04-26T23:17:46.000+0000" }, { "id": "448016", "author": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "body": "Where I can download? http://builds.appcelerator.com/#8_0_X ?", "updateAuthor": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-04-27T07:23:37.000+0000", "updated": "2019-04-27T07:23:37.000+0000" }, { "id": "448017", "author": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "body": "I will test this mobilesdk-8.0.1.v20190426162041-osx.zip . ", "updateAuthor": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-04-27T07:27:28.000+0000", "updated": "2019-04-27T07:27:28.000+0000" }, { "id": "448018", "author": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "body": "OK other behavior: Instead of splash screen I shorty see the gray screen. If I switch to \"don't keep activities\" the I can commit that the bug is partly fixed:\r\n\r\nFirst test:\r\n1. running app\r\n2. home\r\n3. start again => OK (over gray splash screen )\r\nSecond test:\r\n1. running app\r\n2. screen of\r\n3. screen on => restart app with last screen\r\n \r\nEDIT: was my failure, seems to work and the intro seems to be a little faster", "updateAuthor": { "name": "titanium@webmasterei-hamburg.de", "key": "titanium@webmasterei-hamburg.de", "displayName": "Rainer Schleevoigt", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-04-27T07:55:02.000+0000", "updated": "2019-04-27T08:12:02.000+0000" }, { "id": "448042", "author": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket, fix verified in SDK version 8.0.1.v20190426162041 and SDK version 8.1.0.v20190426222341.\r\n\r\nTest and other information can be found at: \r\nMaster : https://github.com/appcelerator/titanium_mobile/pull/10829\r\n8_0_X: https://github.com/appcelerator/titanium_mobile/pull/10868", "updateAuthor": { "name": "smohammed", "key": "smohammed", "displayName": "Samir Mohammed", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-04-29T15:06:30.000+0000", "updated": "2019-04-29T15:06:30.000+0000" }, { "id": "448047", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Thanks for testing it out [~titanium@webmasterei-hamburg.de].\r\n\r\nAnd you will see a gray screen on relaunch for a brief moment if you set system developer option \"Background process limit\" to \"None\", launch the app, launch a different app, and then relaunch your app. The reason is because the Android OS forced quit the app in the background and upon relaunch it attempts to launch via the last displayed child activity (in Titanium's case the \"TiActivity\") instead of the main activity. There's nothing we can really do about this and other apps will show this behavior as well, including Google's own apps. Our solution for Titanium 8.1.0 is to improve the app's cold start up time, which we've already done on the \"master\" branch. It now starts up 2-4 times faster depending the device.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-04-29T17:44:07.000+0000", "updated": "2019-04-29T17:44:07.000+0000" }, { "id": "448048", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "And you can set an image for TiActivity (e.g. the logo, a \"app is loading...\",...) with\r\n{{}} in the application part of your tiapp.xml and set an image in the theme\r\n{code}\r\n\r\n{code}\r\n\r\nLooks way better than just a grey screen.", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-04-29T17:51:37.000+0000", "updated": "2019-04-29T17:51:37.000+0000" }, { "id": "448050", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "What [~michael] will work. Just note that it changes the default background for all {{Ti.UI.Window}} objects to use that image. You can get around that by applying your own background image or color to your child windows.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-04-29T18:29:05.000+0000", "updated": "2019-04-29T18:29:05.000+0000" } ], "maxResults": 14, "total": 14, "startAt": 0 } } }