Revert ag/13072747

The change in ag/13072747 could bring some unexpected behavior, as it
would drop important messages (onTileAdded, onTileDestroyed).

Given that there is no way to prevent messsages delivered after
onDestroy without implementing some kind of callback mechanism, instead
add explicit documentation about this behavior.

Test: build
Fixes: 172511340
Change-Id: I3fa6e41389477cbafa31809cd5041d67a76ccb91
This commit is contained in:
Fabian Kozynski
2021-01-22 15:11:27 -05:00
parent 8357d23b51
commit 6b7e9a3058

View File

@@ -46,7 +46,7 @@ import com.android.internal.R;
*
* <p>The lifecycle of a TileService is different from some other services in
* that it may be unbound during parts of its lifecycle. Any of the following
* lifecycle events can happen indepently in a separate binding/creation of the
* lifecycle events can happen independently in a separate binding/creation of the
* service.</p>
*
* <ul>
@@ -58,6 +58,9 @@ import com.android.internal.R;
*
* <li>When the user removes a tile from Quick Settings {@link #onTileRemoved()}
* will be called.</li>
*
* <li>{@link #onTileAdded()} and {@link #onTileRemoved()} may be called outside of the
* {@link #onCreate()} - {@link #onDestroy()} window</li>
* </ul>
* <p>TileService will be detected by tiles that match the {@value #ACTION_QS_TILE}
* and require the permission "android.permission.BIND_QUICK_SETTINGS_TILE".
@@ -176,9 +179,6 @@ public class TileService extends Service {
@Override
public void onDestroy() {
// As this call will come asynchronously in the main thread, prevent calls from the binder
// being processed after this.
mHandler.removeCallbacksAndMessages(null);
if (mListening) {
onStopListening();
mListening = false;