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
Endless Recycleview focus at top when pagination call android
App crash because of NullPointerException [duplicate]
Firebase MessagingService When app not in debug Mode
Can't populate the Listfragment from Sqlite
extends AppCompatActivity and LinearLayout
Is it possible to (automatically) generate the SQL sentence based upon the input parameters to ContentProvider#query()?
Visual Studio 2017 - Xamarin - The file “obj\Debug\android\bin\packaged_resources” does not exist
Image loaded dynamically into TransitionManager Scenes
Check the radiobutton from the page fragment
CardView not displaying images from URL
how to block my number on my friends phone if i have physical access to his phone (without leting him know)
Android include an expandable listview in a listview row
Appcelerator titanium build takes about 2 minutes
AndroidSlidingUpPanel customization: Sliding action on main layout
Getting “package android.support.multidex does not exist” after upgrading to Android Studio 2.3
When I debug my project by Android studio, my phone's screen will be white before running for a long time