在安装后第一次执行或直接执行之后,是否有处理的事件/接收器或其他内容?或者我需要使用首选项进行模拟吗?
有一个ACTION_PACKAGE_ADDED
广播意图,但被安装的应用程序不会接收到此广播。
因此,检查偏好设置是否已设置可能是最简单的解决方案。
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this);
boolean firstRun = p.getBoolean(PREFERENCE_FIRST_RUN, true);
p.edit().putBoolean(PREFERENCE_FIRST_RUN, false).commit();
onCreate
回调中。但是,这仍然要求用户至少启动一次应用程序。如果你没有活动或者不能依赖用户启动活动,那么你该把这段代码放在哪里? - user2690527我认为这样的东西不存在,而且我认为这不是一个好主意:通常你不仅要处理安装,还要处理一些更新(比如:带有新功能的新版本)或某些资源的适当初始化。
对于资源,最好的方法是直接检查它们。
对于版本,我使用数据库,非常容易。
当数据库版本更改时,将调用SQLiteOpenHelper的OnUpgrade方法。我认为这可以用于处理新模式以外的其他事情。