应用程序需要一段时间才能打开并在关闭后立即打开时变为空白或冻结?
问题描述:
我正在使用Android中的应用程序,在关闭它后立即打开时屏幕变黑或冻结。因此启动发射器活动需要时间。应用程序需要一段时间才能打开并在关闭后立即打开时变为空白或冻结?
我看到GC在日志中运行,但如果应用程序关闭GC为什么运行结果我的应用程序显示非常烦人的黑屏。
J10-20 12:49:30.700: D/dalvikvm(29875): GC_FOR_ALLOC freed 504K, 9% free 10465K/11412K, paused 23ms, total 23ms
10-20 12:49:30.880: D/dalvikvm(29875): GC_FOR_ALLOC freed 494K, 9% free 10472K/11412K, paused 24ms, total 24ms
10-20 12:49:31.040: D/dalvikvm(29875): GC_FOR_ALLOC freed 534K, 9% free 10450K/11412K, paused 24ms, total 24ms
10-20 12:49:31.170: D/dalvikvm(29875): GC_FOR_ALLOC freed 510K, 9% free 10451K/11412K, paused 25ms, total 25ms
10-20 12:49:31.270: D/dalvikvm(29875): GC_FOR_ALLOC freed 487K, 9% free 10476K/11412K, paused 27ms, total 27ms
10-20 12:49:31.430: D/dalvikvm(29875): GC_FOR_ALLOC freed 544K, 9% free 10443K/11412K, paused 27ms, total 27ms
10-20 12:49:31.551: D/dalvikvm(29875): GC_FOR_ALLOC freed 510K, 9% free 10444K/11412K, paused 25ms, total 25ms
10-20 12:49:31.701: D/dalvikvm(29875): GC_FOR_ALLOC freed 504K, 9% free 10450K/11412K, paused 24ms, total 24ms
10-20 12:49:31.811: D/dalvikvm(29875): GC_FOR_ALLOC freed 515K, 9% free 10447K/11412K, paused 23ms, total 23ms
这就是我得到的。 我在日志中得到这个。
如何避免使用ViewHolder模式和更少的对象创建?发射活动的
添加代码:
Log.i("Debug", "OnCreate Splas");
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_wallpaper_one_splash);
Log.i("Debug", "Start Splash");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
WallpaperOneUtils utils = new WallpaperOneUtils(
WallpaperOneSplashActivity.this);
Log.i("Debug", "Call for Internet Availability");
if (utils.isInternetAvailable()) {
Log.i("Debug", "Before All Category fetch");
ParseManagerUtil.getUniqueInstance()
.getAllCategoriesForApplication();
Intent startingActivity = new Intent(
WallpaperOneSplashActivity.this,
HomeScreenActivity.class);
Log.i("Debug", "After All Category fetch");
startActivity(startingActivity);
} else {
Intent noInternet = new Intent(
WallpaperOneSplashActivity.this,
ErrorActivity.class);
startActivity(noInternet);
}
}
}, 2 * 1000);
答
为何使用ViewHolder?试着在你的适配器上这样做:
public View getView(int postion, View view, ViewGroup viewGroup)
{
if (view == null)
{
view = inflater.inflate(R.layout.gridview_item, viewGroup, false);
}
view.setImageResource(...);
return view;
}
你是否在做一些重要的UI线程? – 2014-10-20 08:35:13
没有我所有的操作都在网络调用等异步任务上,如果活动停止,我们可以停止给定活动的所有异步任务 – virendrao 2014-10-20 08:36:09
请问您可以发布代码吗? – 2014-10-20 08:38:23