2016-05-14 110 views
0

我很難搞清楚如何在GWT中保存活動的狀態,就像在Android中一樣。在GWT中保存活動狀態

我的意思是,當一個活動將被丟棄時,我們如何將它的狀態序列化到某個地方並在活動再次顯示時檢索它?

我讀過的人實行的官方指導
http://www.gwtproject.org/doc/latest/DevGuideMvpActivitiesAndPlaces.html
但它並沒有說我什麼問題如下。

你能幫忙嗎?

編輯:

現在,我不知道有什麼用Tokenizet爲gettoken方法是...

public static class Tokenizer implements PlaceTokenizer<HelloPlace> { 
     @Override 
     public String getToken(HelloPlace place) { 

      return place.getHelloName(); 
     } 

     @Override 
     public HelloPlace getPlace(String token) { 

      return new HelloPlace(token); 
     } 
    } 

回答

1

活動不應該有一個狀態。視圖具有狀態,並且當用戶在應用內從一個地方移動到另一個地方時,視圖不會被丟棄。

例如,活動可以加載數據並填充相應的視圖。它也可以在視圖中設置一個標誌,例如populated = true。下次活動開始時,它可以檢查視圖是否被填充並相應地執行。

需要這樣的標誌是由您的要求決定的。有時用戶希望每次訪問某個地方時都會看到刷新的數據。在其他情況下,這可能不必要或不實際。

編輯:

令牌被用於提供額外的信息到有關一個用戶希望在一個視圖看到的活性。例如,一個視圖可以顯示關於博客的信息。然後令牌可以提供一個用戶期望看到一個博客的ID:

/#BloggerBio:12345 

當BloggerBioActivity解析這個令牌(「12345」),它知道加載與ID = 12345和顯示一個博客的生物它在BloggerBioView中。

當用戶再次訪問此視圖時,發生的情況取決於您。即使令牌相同,您也可以刷新視圖,或者您可以將令牌與視圖中顯示的博主的ID進行比較,如果相同,則不執行任何操作。

+0

謝謝,但請參閱我的編輯 – GionJh

+0

您的編輯是如何做Andrei建議的 - 這些方法是如何序列化「12345」或將其重新轉換爲HelloPlace可以使用的數據。你還有什麼實際問題? –