在我的应用程序中,用户可以启用一个服务,当Z时Y / X时执行X.这需要一直打开,但当然Android会在应用程序更新时终止此服务。现在的问题是我所做的复选框和布局更改(按钮切换,可见性等)保持不变。
我的应用程序的布局取决于SharedPreferences,因此需要更新以更改布局。当我更新应用程序时,SharedPreferences不会像服务Checkbox1(它启用服务)那样重置,尽管服务现在被杀死了。我该如何解决这个问题?检查状态是否依赖于服务是否正在运行优于setChecked或SharedPreferences?
另外,如何在应用更新时通知我的用户重新启用该服务?
答案 0 :(得分:3)
您需要添加
<receiver android:name="com.example.receivers.UpgradeReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<data
android:path="com.example"
android:scheme="package" />
</intent-filter>
</receiver>
然后实现此类UpgradeReceiver并重启您的服务
public UpgradeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent serviceIntent = new Intent(context, YourService.class);
context.startService(serviceIntent);
}
}