首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:如何确定冷启动

Android:如何确定冷启动
EN

Stack Overflow用户
提问于 2013-08-22 16:20:33
回答 2查看 11.7K关注 0票数 7

当应用程序启动时,如何确定它是冷启动还是不启动?所谓冷启动,我指的是应用程序从一开始就启动,而不是仅仅从以前的状态恢复。

:编辑:详细阐述了我的问题:我正在尝试找到应用程序的启动模式:冷启动还是暖启动。冷启动意味着应用程序从来没有启动之前或不在后台,所以它需要一个完整的启动。温暖的开始意味着它仍然在背景中,所以它可以恢复和更快地开始。如何以编程方式区分这两种启动模式?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-03 20:46:15

如果应用程序仍然在后台运行,它将首先调用onResume,而不是onCreate。

如果您的意思是第一次在设备上启动它,那么使用sqlite或共享首选项来存储数据,并在开始时检查它是否在那里。

票数 6
EN

Stack Overflow用户

发布于 2016-11-15 07:09:49

当我在Oodles技术公司从事Android开发时,我了解了Android的冷启动。让我分享我的知识。

飞溅屏,也称为冷启动

screen是一种活动,它将在应用程序启动时显示一段时间,并在一段时间后重定向到应用程序主活动。

何时使用启动屏幕:

以显示您的品牌徽标用户。在显示启动屏幕时从网络或其他源加载数据。使用Android启动屏幕,这样应用程序就可以在显示应用程序的其他内容之前显示其图标。Splash还用于在应用程序中执行一些后台工作,例如,在显示splash屏幕时从网络加载资源。它将给这个应用程序一个平滑的外观。

冷启动也被称为splash ,启动屏幕或冷启动,在android.As中,我认为用户应该尽快拥有任何应用程序可用的内容,但是当用户启动应用程序时,安卓会创建一个新的进程,在这个过程中向用户显示一个与应用程序主题内置的黑白屏幕,或者如果我们的应用程序更加复杂,使用应用程序对象(通常用于初始化分析、错误记录器),则输入point.There的活动主题可以加载得更多。等等,为什么黑白屏幕不是一个好东西显示给用户。如果应用程序加载时间较慢,我们可以使用一个位置持有者来填充它的真实内容,另一方面,如果我们的工作负载是复杂的,我们可以显示我们的应用程序的标志,以使应用程序看起来漂亮。

如前所述,当进程处于加载状态时,窗口管理器显示的窗口设置在应用程序主题(values>Style节)中。

特别是在android内部的值:WindowBackground中,您可以通过在中间的一个小位图上用主活动的背景颜色创建一个花哨或冷开始。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:opacity="opaque">
    <item android:drawable="@color/colorAccent" />
    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_notification" />
    </item>
</layer-list>

layer_list必须是不透明的.And --背景颜色应该在主布局中填充颜色,如果不是,分层列表将始终显示在活动中。

activity_splash.xml

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@color/colorAccent"
    >

    <android.support.v7.widget.Toolbar
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?colorPrimary"
        android:elevation="4dp"/>
</LinearLayout>

SplashActivity.java

代码语言:javascript
复制
package com.weone.android.controllers.activities;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.util.Log;

import com.crashlytics.android.Crashlytics;
import com.crashlytics.android.core.CrashlyticsCore;
import com.weone.android.BuildConfig;
import com.weone.android.R;
import com.weone.android.utilities.database.MyPrefs;
import com.weone.android.utilities.network.gcm.GcmHandlerActivity;

import butterknife.ButterKnife;
import io.fabric.sdk.android.Fabric;

/**
 * Created by oodles on 15/1/16.
 */
public class SplashActivity extends GcmHandlerActivity {
    Intent intent;
    private Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        setContentView(R.layout.top_activity);     
        ButterKnife.bind(this);
        initViews();
    }

      private void initViews() {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {              
                    intent = new Intent(mContext, DrawerActivity.class);
                    startActivity(intent);
                    finish();              
            }
        }, 1000);
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18385939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档