android
Android restart app after clearing cache and data
I have an app which requires data cleaning to work better again. I am clearing data using, ((ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE)) .clearApplicationUserData(); But cannot restart the app. I tried adding intent after clearing data. But since the app closes after clearing data. I think that code is unreachable. ((ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData(); Toast.makeText(MainActivity.this,"Reloading...",Toast.LENGTH_SHORT).show(); startActivity(new Intent(MainActivity.this,MainActivity.class)); finish();
Create new ApplicationClass like below public class ApplicationClass extends Application { private static ApplicationClass instance; #Override public void onCreate() { super.onCreate(); instance = this; } public static ApplicationClass getInstance() { return instance; } } Add Application class to Application tag of manifest android:name=".ApplicationClass" <application android:allowBackup="true" android:icon="#mipmap/ic_launcher" android:label="#string/app_name" android:roundIcon="#mipmap/ic_launcher_round" android:name=".ApplicationClass" android:supportsRtl="true" android:theme="#style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> And use this code for clearing data Intent intent = new Intent(MainActivity.this, MainActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); PendingIntent pendingIntent = PendingIntent.getActivity(ApplicationClass.getInstance().getBaseContext(), 0, intent, PendingIntent.FLAG_ONE_SHOT); AlarmManager mgr = (AlarmManager) ApplicationClass.getInstance().getBaseContext().getSystemService(Context.ALARM_SERVICE); mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 100, pendingIntent); System.exit(2); ((ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData();
After calling clearApplication data, application is killed.Thats why MainActivity doesn't called.
For Clear cache try reference link Try below code for restart app Intent i = getBaseContext().getPackageManager() .getLaunchIntentForPackage( getBaseContext().getPackageName() ); i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(i); finish(); Note: If you use clear the app data app doesn't restart. You have to restart it again manually.
Related Links
android.media.MediaExtractor Sample Flags
To use or not to use getMyLocation () in google maps API v2 for android?
Django allauth linking multiple accounts from mobile app
How to check which current image resource is attached to ImageView in android xml?
How to keep screen always on android [duplicate]
generating class diagram from existing classes in eclipse IDE
Android stock browser on Xperia Z does not render html correctly
How does TabPilot remotely install apps without user interaction?
when i import facebook sdk it gets more errors
Quickblox Android SDK: Using the or custom operator in custom object query
how to create all view on load in pagerview?
Start a new Intent by setClassName with same packege in android
Facebook API Error code 100 - Unity
AdMob intregation in Android
How to add library google play service in android studio successfully
cordova websql db not working on android phones < 4.4