您好我创建的图像应用程序和工作正常。然而,出现了一些小错误。一个是当在Launcher上单击应用程序图标时,它会冻结并有时会变为黑屏。但有时它会快速而正确地加载。它是随机发生的。
因此,当它正常加载或冻结应用程序并在加载前变为黑色时,我会看到GC运行如何防止此行为。
我已经定义了我的应用程序,该应用程序扩展了Application类,因此在启动器活动冻结屏幕之前调用Application。
以下是我在应用程序中的代码:
public class WallieApplication extends Application implements WallieConstants,
WallieParseConstants, WallieSharedPreferencesConstant {
@Override
public void onCreate() {
try {
super.onCreate();
/**
* Call to enable Local Data Storage.
*/
Log.i("Debug", "Enable Local Datastore Parse");
Parse.enableLocalDatastore(this);
Log.i("Debug", "Initialize Parse");
Parse.initialize(getApplicationContext(), PARSE_APPLICATION_ID,
PARSE_CLIENT_KEY);
try {
Crashlytics.start(this);
Helpshift.install(this, HELPSHIFT_API_KEY, HELPSHIFT_DOMAIN,
HELPSHIFT_APP_ID);
} catch (Exception e) {
Crashlytics.log(e.getMessage());
}
Log.i("Debug", "Enable Push Callback");
PushService.setDefaultPushCallback(getApplicationContext(),
HomeScreenActivity.class);
Log.i("Debug", "Enable Push Callback Done");
} catch (Exception e) {
Crashlytics.log(e.getMessage());
}
}
}
我看到的是当我关闭应用程序时,我看到这个代码中的日志打印在logcat上。如果他们打印我观察它冻结app?
答案 0 :(得分:0)
查看在活动出现之前执行的OnCreate
和其他活动生命周期方法中的耗时任务,并将所有耗时的代码作为异步任务移至后台线程,例如
答案 1 :(得分:0)
我假设您在UI线程上做了很多工作。这可能会导致不同的行为,具体取决于设备。要检查这是否是您正面临的问题,请查看以下文章:
http://android-developers.blogspot.ch/2010/12/new-gingerbread-api-strictmode.html
可能是因为你在启动时加载了很多图像。您必须加载它们异步以避免这样的问题。有很多图书馆可以帮助您,即http://square.github.io/picasso/