Android PendingIntent与Intent的区别的理解
2010-11-05 00:55:40 来源:WEB开发网}
registerReceiver(mClearCacheReceiver,
new IntentFilter(ClearCacheReceiver.INTENT_CLEAR_CACHE));
PendingIntent pi = PendingIntent.getBroadcast(this,
0, new Intent(ClearCacheReceiver.INTENT_CLEAR_CACHE), 0);
mPm.freeStorage(size, pi.getIntentSender());
}
private void checkOutOfSpace(long size) {
if(localLOGV) Log.i(TAG, "Checking for "+size+" number of bytes");
if (mClearCacheReceiver == null) {
mClearCacheReceiver = new ClearCacheReceiver();
}
registerReceiver(mClearCacheReceiver,
new IntentFilter(ClearCacheReceiver.INTENT_CLEAR_CACHE));
PendingIntent pi = PendingIntent.getBroadcast(this,
0, new Intent(ClearCacheReceiver.INTENT_CLEAR_CACHE), 0);
mPm.freeStorage(size, pi.getIntentSender());
}
以下是在PackageManagerService的:
Java代码
public void freeStorageAndNotify(final long freeStorageSize, final IPackageDataObserver observer) {
mContext.enforceCallingOrSelfPermission(
android.Manifest.permission.CLEAR_APP_CACHE, null);
// Queue up an async operation since clearing cache may take a little while.
mHandler.post(new Runnable() {
public void run() {
mHandler.removeCallbacks(this);
int retCode = -1;
if (mInstaller != null) {
retCode = mInstaller.freeCache(freeStorageSize);
if (retCode < 0) {
Slog.w(TAG, "Couldn't clear application caches");
}
} //end if mInstaller
if (observer != null) {
try {
observer.onRemoveCompleted(null, (retCode >= 0));
} catch (RemoteException e) {
Slog.w(TAG, "RemoveException when invoking call back");
}
}
}
});
}
Tags:Android PendingIntent Intent
编辑录入:coldstar [复制链接] [打 印]赞助商链接