我开发了一个应用程序,它使用切换按钮来决定启用/禁用我的应用程序。我将切换按钮状态存储为静态变量,以便在停止和恢复时保留它的值。但是,重新启动时,静态变量将重新初始化为其默认状态。有没有什么方法可以让我的应用程序恢复其状态,即使重启后?
具体来说,我的应用程序所做的是在切换时启用“服务”。所以我希望在重启手机时自动启动该服务。这可能吗?
由于
答案 0 :(得分:2)
将变量保存在SharedPreferences
了解它是如何运作的,http://developer.android.com/reference/android/content/SharedPreferences.html
然后在您的活动开始时恢复它们
不是那么重要,但如果你使用切换,你可以保存布尔
教程:http://www.vogella.com/tutorials/AndroidFileBasedPersistence/article.html
GL
编辑:在关于服务的其他问题上,我们真的不知道你到目前为止做了什么,但也许这样:Android -Starting Service at Boot Time可以提供帮助,如果没有提供你所做的一些代码。答案 1 :(得分:1)
嗯,当您的应用程序在手机重新启动时启动时,这是可能的。将通过主要活动调用服务。 您可以在手机通过看起来像这样的broadcastrecievir时启动应用程序。: -
public class BootUpReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, MainActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
这需要在AndroidManifest中添加为: -
<receiver
android:name="com.example.xyz.BootUpReceiver"
android:enabled="true" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
答案 2 :(得分:0)
将变量存储到SQLite
或SharedPreferences
。然后在Activity
重新启动时恢复它的状态。
答案 3 :(得分:0)
您可以将变量存储到共享偏好中,这将更加容易
http://developer.android.com/reference/android/content/SharedPreferences.html
// to save it
SharedPreferences.Editor editor = getPreferences(MODE_PRIVATE).edit();
editor.putString("your_key", "your_value");
editor.commit();
//to retrieve it back
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
String your_value= prefs.getString("your_key", null);