清除数据并重启app android

时间:2012-12-12 11:53:58

标签: android database android-activity

我想在我的应用中清除数据并重新启动应用。为此,我使用了以下代码。但是,它似乎不起作用。请帮帮我!

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);

编辑:我认为没有效果,应用程序只是重新启动,数据绝对保留!

2 个答案:

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