小编Mat*_*ias的帖子

初始化Android应用程序

我目前面临以下问题:每当我的Android应用程序启动时,它都需要执行一些耗时的初始化代码.如果没有此代码,应用程序中的所有活动/服务都将无法正常运行.

到目前为止,我已将此初始化代码放入SplashScreen活动中,我在清单中将其声明为MAIN活动.一旦执行了初始化代码,我就完成()启动画面并启动实际的主要活动,即由几个选项卡组成的活动,用户可以从中进行其他几项活动.

现在的问题如下:当我的应用程序放在后台时,经过一段时间后,在启动其他应用程序后,我的应用程序/进程被终止.当我从主屏幕重新启动它时,Android会恢复活动堆栈(任务)并在它们上调用onCreate().但是,不执行启动画面活动,因此不执行初始化代码,这会导致异常.

我现在可以将初始化代码放在应用程序的onCreate()中,但是这会导致黑屏,直到方法结束.

有没有人有想法,我可以在启动时正确初始化我的应用程序的位置和方式?

初始化代码:

public void init() {
    if (initialized) {
        return;
    }

    // Initialize terms
    List<Tag> tags= DynamicDao.loadAll(Tag.class);
    int numTags = tags.size();
    terms = new String[numTags];
    for (int i = 0; i < numTags; i++) {
        terms[i] = tags.get(i).getTag();
    }

    // Initialize document-term matrix
    List<Item> items = DynamicDao.loadAll(Item.class);
    createDocumentTermMatrix(items);

    initialized = true;
}
Run Code Online (Sandbox Code Playgroud)

注意:一个Item有几个相关的标签,我需要从中创建一个文档向量.

java sdk android android-activity

6
推荐指数
1
解决办法
9839
查看次数

如何在使用Flexjson时排除空值字段?

我使用Flexjson将这样的类序列化为JSON:

public class Item {
    private Long id;
    private String name;
    private String description;
    ...

    // Getters and setters
    ...
}
Run Code Online (Sandbox Code Playgroud)

许多Item字段可以为null(例如,描述).因此,当使用Flexjson序列化这样的Item对象时,我得到以下JSON:

 {"id":62,"name":"Item A","description":null,...}
Run Code Online (Sandbox Code Playgroud)

因为,正如我已经提到的,Item对象可能包含许多空值字段,因此输出的JSON比实际需要的长.到目前为止这是一个问题,因为我想通过WiFi,3G,EDGE或GPRS通过无线连接将生成的JSON从Web服务器发送到移动客户端(即,需要更多带宽,这会导致速度降低).

因此,我想问一下如何使用Flexjson(有效地)排除空值属性?

谢谢!

java json jsonserializer flexjson

6
推荐指数
1
解决办法
4343
查看次数

标签 统计

java ×2

android ×1

android-activity ×1

flexjson ×1

json ×1

jsonserializer ×1

sdk ×1