我按照本教程構建了一個 QuickSettings Tile:https : //codelabs.developers.google.com/codelabs/android-n-quick-settings/#0到目前為止一切都很好,但現(xiàn)在我堅持這一點:我如何檢測(在活動中)當前是否添加了磁貼?我的第一次嘗試是將其存儲在一個文件中(使用onTileAdded和onTileRemoved),但這可能會不同步(如果使用外部存儲,則可能是“數(shù)據(jù)清除”或用戶編輯)。有沒有一種安全的方法可以獲得這些信息?
1 回答

侃侃爾雅
TA貢獻1801條經(jīng)驗 獲得超16個贊
您可以在服務中使用靜態(tài)變量:
public class MyTileService extends TileService {
public static boolean isAdded = false;
//...
@Override
public void onTileAdded() {
isAdded = true;
}
@Override
public void onTileRemoved() {
isAdded = false;
}
}
然后只需從您的活動中訪問該變量。
不幸的是,由于 TileServices 已經(jīng)覆蓋,onBind()您不能使用 Binder 來按需獲取值。作為靜態(tài)變量的替代方案,請考慮使用 LocalBroadcastManager 在添加或刪除 TileService 時從 TileService 發(fā)送廣播。然后您可以在您的活動中接收結果并使用它來更新那里的全局變量。
添加回答
舉報
0/150
提交
取消