2017-06-29 20 views
2

「ログアウト」ボタンをクリックすると、アプリはすべてのデータを消去します。アプリのデータを消去した後にアクティビティを開始するにはどうすればよいですか?

private void deleteAppData() { 
    try { 
     // clearing app data 
     String packageName = context.getPackageName(); 
     Runtime runtime = Runtime.getRuntime(); 
     runtime.exec("pm clear " + packageName); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

runtime.exec finishのリスナーを設定するにはどうすればよいですか?実行が終了したら、Splashアクティビティを開きます。今、アプリは閉じているだけです。

質問:runtime.exec完了後のアクティビティの開始方法は?

+0

データのスプラッシュアクティビティをクリアした後。 –

+1

asynctaskを使用し、onPostExecuteメソッドのアクティビティを開始 – Rahul

+0

ええ、どのように私はクリアを完了したか?これは私が達成しようとしているものです。 –

答えて

0

ログアウトアクティビティのOnDestroyまたはonStop()でこれを実行する必要があると思います。実行時にデータをクリアしてから、アプリケーションが他のアクティビティに移行すると、startActivity(i)が呼び出されるためです。

0

startActivityを使用して新しいアクティビティを開始した直後に、現在のアクティビティが新しいものの後ろに積み重ねられないようにfinish()を呼び出してください。

Intent mIntent = new Intent(mContext,MainActivity.class); 
finishAffinity(); 
startActivity(mIntent); 
+0

質問はランタイムを特定する方法についてです。 execが終了しました –

+0

通常、prefrenceの値をクリアした後、prefrenceの値をクリアします。これは、実行可能な場合と同じ方法でリダイレクトされます。また、「実行が終了したらSplashアクティビティを開きます。 "答えは –

+0

です。プリファレンスに加えて、私はSQLiteデータベースと内部ストレージファイルを持っています。だから私はすべてのデータを削除したいです –

関連する問題