0

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

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

编辑:我看不到任何效果,应用程序只是重新启动,数据绝对保留!

4

2 回答 2

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);
于 2012-12-12T12:06:19.287 回答
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));
    }
}
于 2012-12-12T12:08:35.307 回答