【发布时间】:2012-12-04 08:34:19
【问题描述】:
我有一个大问题。 首先,我有一个项目列表。当用户点击每个项目时,我的应用程序开始从互联网下载文件。 我已经用 AsyncTask 串行执行器实现了这个。 下载文件完成后,当应用程序安装成功时,我的应用程序立即开始运行 Android Installer。我想将设备信息发送到服务器
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file),"application/vnd.android.package-archive");
activity.startActivityForResult(intent, 1);
MainActivity.java
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
List<PackageInfo> packs = this.getPackageManager()
.getInstalledPackages(0);
for (int i = 0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
if (InstalledPackageName != null
&& InstalledPackageName.equals(p.packageName)) {
//file install success
QstoreRestClient rest = new QstoreRestClient(this,
"Please wait...");
SecurityInstallManager secure = new SecurityInstallManager();
String strDeviceID = getUniqueDeviceId();
String strProductID = InstalledPackageID;
String strToken = mToken;
String strModel = getModelDevice();
Log.d("QSTORE mUserName", mUserName);
Log.d("QSTORE strProductID", strProductID);
Log.d("QSTORE strDeviceID", strDeviceID);
Log.d("QSTORE strToken", strToken);
Log.d("QSTORE strModel", strModel);
String strSHA = secure.getSHAHighscore(mUserName,
strDeviceID, strProductID, strToken);
rest.installShowLoading(mUserName, strProductID,
strDeviceID, strSHA, strModel, this);
Log.d("QSTORE", "Already Installed");
// return;
}
}
// }
InstalledPackageName = null;
InstalledPackageID = null;
}
super.onActivityResult(requestCode, resultCode, data);
}
我的问题: 您可以看到文件下载完成时,我的应用程序在新 Activity 中运行 Android Installer 并将结果发送回主 Activity(调用 OnActivityResult()) 这里的问题是,如果用户下载 5 个文件,我的应用程序运行 5 个新 Activity 以安装新应用程序,因此每个子 Activity 的结果无法发送回主 Activity。 我想知道有没有办法解决这个问题?
【问题讨论】:
标签: android android-asynctask download android-install-apk