2017-05-16 53 views
0

我有一个应用程序需要数据清理再次运行得更好。 我使用这个数据清除,清除缓存和数据后的Android重新启动应用程序

((ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData(); 

但不能重新启动应用程序。清除数据后,我尝试添加意图。但自从清除数据后应用程序关闭。我认为代码无法访问。

((ActivityManager)MainActivity.this.getSystemService(ACTIVITY_SERVICE)).clearApplicationUserData(); 
Toast.makeText(MainActivity.this,"Reloading...",Toast.LENGTH_SHORT).show(); 
startActivity(new Intent(MainActivity.this,MainActivity.class)); 
finish(); 
+0

从那里你叫清除缓存代码这个代码? –

+0

从上面的同一活动。也就是说,MainActivity – Vivek

+0

您的清除缓存代码是否完美工作? –

回答

0

对于清除高速缓存尝试引用link

尝试下面的代码重新启动应用程序

Intent i = getBaseContext().getPackageManager() 
     .getLaunchIntentForPackage(getBaseContext().getPackageName()); 
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(i); 
finish(); 

注:如果使用清除应用程序数据应用不重新启动。您必须手动重新启动它。

1

调用clearApplication数据后,应用程序被终止。这就是为什么MainActivity没有调用。

2

像下面

public class ApplicationClass extends Application { 

private static ApplicationClass instance; 

@Override 
public void onCreate() { 
    super.onCreate(); 
    instance = this; 
} 

public static ApplicationClass getInstance() { 
    return instance; 
} 
} 

添加应用程序类清单

的Android的应用程序标签创建新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> 
“ApplicationClass。”

并用于清除数据

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(); 
相关问题