2015-10-14 143 views
0

在我的Android應用程序中,我有一個名爲AppUser的ParseObject子類,其中有一個名爲「favorites」的字段,它是ParseObject的另一個名爲DateMeeting的子類的數組。 當我刪除一個DateMeeting對象時,指向「收藏夾」中的指針仍然存在。我怎樣才能刪除這個指針? 這將是最好的,如果我可以用Java編寫的,沒有云代碼如何從解析中的指針數組中刪除指針?

回答

0

可以使用的WeakReference的清單DateMeeting代替DateMeeting

class AppUser extends ParseObject { 
    List<WeakReference<DateMeeting>> favorites; 
} 

class DateMeeting extends ParseObject{} 

的名單這樣,當你想刪除DateMeeting的一個實例在收藏夾列表中的引用不會使它保持生命。

的最愛,當你發佈一個DateMeeting對象,但你可以檢查對象仍然存在與檢查(假設我是移動到列表中的索引)

if (favorites.get(i).get()!=null) 
{ 
    // object at i-position is still live 
} 

不會減少它的大小清單欲瞭解更多信息,請查看herehere

0

對我而言,它是這樣工作的。假設您已經有AppUserDateMeeting

AppUser appUser = ... 
DateMeeting dateMeeting = ... 

... 

// remove pointer from appUser 
DateMeeting[] meetings = new DateMeeting[] {dateMeeting}; 
appUser.removeAll("favorites", Arrays.asList(meetings)); 
appUser.saveInBackground(); 

// now you can delete the meeting 
dateMeeting.deleteInBackground();