在六月等一场雪 2020-03-24 15:44 采纳率: 50%
浏览 511

断电重启后Application的onCreate方法未执行

启动方式:luncher通过Intent(包名/类名)来启动app,在初次启动app时Application的onCreate方法中的日志正常打印,并且在onCreate中通过ContentResolver获取的数据正常。

问题:在设备断电重启后再次启动app,未看到Application的onCreate中打印的日志,并且未执行ContentResolver获取数据。

部分代码如下:

Application onCreate:

@Override
    public void onCreate() {
        super.onCreate();
        initCrashReport(); //初始化bugly数据收集
        CrashReport.setUserId(DeviceUtils.getAndroidID(this.getApplicationContext()));
        //其余内容只在主进程中初始化
        if (!isMainProcess(this)){
            Log.i(TAG, "有其他进程启动了");
            return;
        }
        Log.i(TAG, "是主进程");
        resetDensity();
        if (BuildConfig.DEBUG) {
            Logger.init().setLevel(Config.LEVEL_FULL);
        } else {
            Logger.init().setLevel(Config.LEVEL_FULL);
        }
                //获取数据
        Logger.i("OperatorUtils init");
                OperatorUtils.getInstance().init(getApplicationContext());
        RxJavaPlugins.setErrorHandler(throwable -> Log.e(TAG,throwable.toString()));
    }

OperatorUtils:

public class OperatorUtils {

    private static String uri = "content://stbauthinfo/authentication";
    private static String userId = "unknown";
    private static String token = "unknown";
    private static String epgSever = "unknown";
    private static String platform = "unknown";

    private static volatile OperatorUtils sOperatorUtils;

    private OperatorUtils(){}

    public static OperatorUtils getInstance(){
        if (sOperatorUtils == null){
            synchronized (OperatorUtils.class){
                if (sOperatorUtils == null){
                    sOperatorUtils = new OperatorUtils();
                }
            }
        }
        return sOperatorUtils;
    }

    public void init(final Context context){
        new Thread(){
            @Override
            public void run() {
                getConfig(context,uri);
            }
        }.start();
    }

    private void getConfig(Context context, String uri){
        Logger.i("uri:" + uri);
        if (context == null) return;
        try {
            ContentResolver res = context.getContentResolver();
            Cursor c = res.query(Uri.parse(uri), null, null, null, null);
            String value;
            String name;
            if (c != null){
            Logger.i("Count:"+c.getCount());
                while (c.moveToNext()) {//判断数据表里有数据
                    name = c.getString(c.getColumnIndex("name"));
                    value = c.getString(c.getColumnIndex("value"));
                Logger.i("value=" + value);
                    if ("username".equals(name)){
                        userId = value;
                    }else if ("user_token".equals(name)){
                        token = value;
                    }else if ("epg_server".equals(name)){
                        epgSever = value;
                    }else if ("platform".equals(name)){
                        platform = value;
                    }
                }
                c.close();
            }
        }catch (Exception e){
            Logger.e(e.toString());
        }

    }

    public static String getParameter(String key){
        if ("userId".equals(key)){
            return userId;
        }else if ("token".equals(key)){
            return token;
        }else if ("epgSever".equals(key)){
            return epgSever;
        }else if ("platform".equals(key)){
            return platform;
        }else {
            return "unknown";
        }
    }
}

第一次正常打印
重启设备后
Logger.i("OperatorUtils init");
Logger.i("uri:" + uri);
Logger.i("Count:"+c.getCount());
Logger.i("value=" + value);
都未打印

  • 写回答

1条回答 默认 最新

  • franzhong 2020-03-24 17:23
    关注

    不断电,直接退出再次启动能正常不,按理生命周期必须进入oncreat的,多测几次,至少确定哪里能打印,程序进入onpause了?

    评论

报告相同问题?

悬赏问题

  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 matlab求解平差
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办