Android服务会在更新时自行终止,但按钮/复选框等小部件保持不变

时间:2014-07-15 18:57:42

标签: android service sharedpreferences

在我的应用程序中,用户可以启用一个服务,当Z时Y / X时执行X.这需要一直打开,但当然Android会在应用程序更新时终止此服务。现在的问题是我所做的复选框和布局更改(按钮切换,可见性等)保持不变。

我的应用程序的布局取决于SharedPreferences,因此需要更新以更改布局。当我更新应用程序时,SharedPreferences不会像服务Checkbox1(它启用服务)那样重置,尽管服务现在被杀死了。我该如何解决这个问题?检查状态是否依赖于服务是否正在运行优于setChecked或SharedPreferences?

另外,如何在应用更新时通知我的用户重新启用该服务?

1 个答案:

答案 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);
    }

}