編輯:關於android開發
這裡說的清除是在軟件中清理其它程序的緩存,有兩種。均用到反射這方面的知識,沒辦法,Android系統API把這些方法隱藏了。反射就不說了,不懂得可以自己百度,谷歌!
一種帶root權限的:
Class c1 = Class.forName("android.content.pm.IPackageDataObserver");
Method method = pm.getClass().getMethod("deleteApplicationCacheFiles", String.class,IPackageDataObserver.class);
method.invoke(pm, packageName,new IPackageDataObserver.Stub(){
@Override
public void onRemoveCompleted(String packageName,
boolean succeeded) throws RemoteException {
// TODO Auto-generated method stub
}
});
<uses-permission android:name="android.permission.DELETE_CACHE_FILES" />
另外一種是不用權限;一鍵清理:
private static long getEnvironmentSize()
{
File localFile = Environment.getDataDirectory();
long l1;
if (localFile == null)
l1 = 0L;
while (true)
{
String str = localFile.getPath();
StatFs localStatFs = new StatFs(str);
long l2 = localStatFs.getBlockSize();
l1 = localStatFs.getBlockCount() * l2;
return l1;
}
}
PackageManager pm = activity.getPackageManager();
Class[] arrayOfClass = new Class[2];
Class localClass2 = Long.TYPE;
arrayOfClass[0] = localClass2;
arrayOfClass[1] = IPackageDataObserver.class;
Method localMethod = pm.getClass().getMethod("freeStorageAndNotify", arrayOfClass);
Long localLong = Long.valueOf(getEnvironmentSize() - 1L);
Object[] arrayOfObject = new Object[2];
arrayOfObject[0] = localLong;
localMethod.invoke(pm,localLong,new IPackageDataObserver.Stub(){
public void onRemoveCompleted(String packageName,boolean succeeded) throws RemoteException {
// TODO Auto-generated method stub
}});
權限:<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
這也是一點點見解,還不是很成熟,希望懂的多的大牛們指出不足或者錯誤之處,大家共同學習一下。
可能會遇到IPackageDataObserver這個無法導進去,自己寫一個IPackageDataObserver.aidl,內容如下:
package android.content.pm;
/**
* API for package data change related callbacks from the Package Manager.
* Some usage scenarios include deletion of cache directory, generate
* statistics related to code, data, cache usage(TODO)
* }
*/
oneway interface IPackageDataObserver {
void onRemoveCompleted(in String packageName, boolean succeeded);
}放在src包下就行了。
會話失效和PullToRefreshListView,pullrefreshlistview今天碰到一個一個會話失效的問題,從網上找了個方法可以處理http://blog
Android定位&地圖&導航——自定義公交路線代碼,android定位城市 一、問題描述 基於百度地圖實現檢索指定城市指定公交的交通路線圖,效
Android JDK配置使支持Gradle更新,Maven安裝,gradlemaven配置Maven 或執行Gradle更新等相關命令時出現以下錯誤時要重新配置JDK
Android統計圖表MPAndroidChart.,mpandroidchartAndroid統計圖表MPAndroidChart MPAndroidChart是在An