【发布时间】:2015-02-27 05:49:26
【问题描述】:
我创建了一个 Activity 以从已安装的应用中选择一个应用,并获取所选应用的启动器意图并将该意图传递回启动 Activity:
Intent intent = packageManager
.getLaunchIntentForPackage(app.packageName);
if (null != intent) {
Intent data = new Intent();
data.setData(Uri.parse(intent.toString()));
setResult(RESULT_OK, data);
finish();
}
开始活动的onActivityResult:
public void onActivityResult(int requestCode, int resultCode, Intent data){
if (requestCode == request_Code){
if (resultCode == RESULT_OK){
intent = data.getData().toString();
startActivity(new Intent(intent));
}
我从 Logcat 中提取了intent String 和 startActivity 中的Intent,我得到了这个:intentString:Intent { act=android.intent.action.MAIN cat=[android. intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.providers.downloads.ui cmp=com.android.providers.downloads.ui/.DownloadsListTab }Intent in startActivity: Intent { act=Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.android.providers.downloads.ui cmp=com.android.providers.downloads .ui/.DownloadsListTab } }
(我的应用因为这个错误的 Intent 而崩溃)
如您所见,我传递回起始 Activity 的字符串是我需要的 Intent 本身(在字符串中)
那么无论如何我可以在没有 Intent 的构造函数的情况下将该 String 设为 Intent 吗?或者可能是一种将 Intent 直接传递给起始 Activity 的方法?
【问题讨论】: