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 に答える