在GWT中保存活动状态

时间:2016-05-14 14:24:51

标签: java android-activity gwt web

我很难弄清楚如何在GWT中保存活动的状态,就像在Android中一样。

我的意思是,当一个活动将被丢弃时,我们如何在某个地方序列化其状态并在再次显示活动时检索它?

我已经阅读了以下官方指南的实践 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 个答案:

答案 0 :(得分:1)

活动不应该有状态。视图具有状态,当用户在应用程序中从一个地方移动到另一个地方时,视图不会被丢弃。

例如,活动可以加载数据并填充相应的视图。它还可以在视图中设置标记,例如populated = true。下次活动开始时,它可以检查视图是否已填充并相应地采取相应措施。

这些标志的需求取决于您的要求。有时,用户希望每次访问某个地点时都会看到刷新的数据。在其他情况下,它可能没有必要或不实用。

编辑:

令牌用于向活动提供有关用户希望在视图中看到的内容的其他信息。例如,视图可以显示有关博主的信息。然后,令牌可以提供用户期望看到的博主的ID:

/#BloggerBio:12345

当BloggerBioActivity解析此令牌(&#34; 12345&#34;)时,它知道加载id = 12345的博客生物并在BloggerBioView中显示它。

当用户再次访问此视图时,由您决定会发生什么。即使令牌相同,您也可以刷新视图,或者您可以将令牌与视图中显示的博客的ID进行比较,如果它相同,则不执行任何操作。