Android TileService的onStartListening方法不会立即被调用的原因是因为系统会对Tile进行管理并进行优化,只有当用户需要显示或操作Tile时,该方法才会被调用。
解决方法:
@Override
public void onCreate() {
super.onCreate();
// 添加Tile到Quick Settings面板
Tile tile = getQsTile();
tile.setState(Tile.STATE_ACTIVE);
tile.updateTile();
// 请求让系统监听该Tile
requestListeningState(getApplicationContext(), new ComponentName(this, YourTileService.class));
}
@Override
public void onTileAdded() {
super.onTileAdded();
// 确保Tile被添加后立即调用onStartListening方法
startListening();
}
@Override
public void onStartListening() {
super.onStartListening();
// 执行需要的操作
}
通过以上方法,可以确保TileService的onStartListening方法能够在需要时被调用。