我想在我的应用中清除数据并重新启动应用。为此,我使用了以下代码。但是,它似乎不起作用。请帮帮我!
deleteDatabase(Universal.database_name);
Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage( getBaseContext().getPackageName() );
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK );
startActivity(i);
编辑:我认为没有效果,应用程序只是重新启动,数据绝对保留!
答案 0 :(得分:0)
要清除应用数据,您可以使用此方法:
public void clearApplicationData() {
File cache = currentActivity.getCacheDir();
File appDir = new File(cache.getParent());
if (appDir.exists()) {
String[] children = appDir.list();
for (String s : children) {
if (!s.equals("lib")) {
deleteDir(new File(appDir, s));
}
}
}
}
除了重新启动应用程序,您还应该使用警报管理器
AlarmManager mgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
PendingIntent restartIntent = PendingIntent.getActivity(
this.getBaseContext(), 0, new Intent(getIntent()),
getIntent().getFlags());
mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent);
System.exit(2);
答案 1 :(得分:0)
**此活动没有显示任何内容;相反,它重新启动android进程* /
public class AppRestartActivity extends Activity {
// Do not forget to add it to AndroidManifest.xml
// <activity android:name="your.package.name.AppRestartActivity"/>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
System.exit(0);
}
public static void doRestart(Activity anyActivity) {
anyActivity.startActivity(new Intent(anyActivity.getApplicationContext(), MagicAppRestart.class));
}
}