2016-05-14 84 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可以使用的数据。你还有什么实际问题? –