Android意图为空
我使用以下代码启动应用程序:Android意图为空,android,android-intent,Android,Android Intent,我使用以下代码启动应用程序: Intent hasApp = getPackageManager().getLaunchIntentForPackage("appName.app"); Intent intent = new Intent(Intent.ACTION_VIEW); dataId = response.getdataId(); intent.setData(Uri.parse("appName:?pid=" + dataId + "&action=returntoapp")
Intent hasApp = getPackageManager().getLaunchIntentForPackage("appName.app");
Intent intent = new Intent(Intent.ACTION_VIEW);
dataId = response.getdataId();
intent.setData(Uri.parse("appName:?pid=" + dataId + "&action=returntoapp"));
startActivityForResult(intent, Globals.DATA_REQUEST_CODE);
setResult(Activity.RESULT_OK);
finish();
我用以下代码关闭打开的应用程序:
Intent hasApp = getPackageManager().getLaunchIntentForPackage("appName.app");
Intent intent = new Intent(Intent.ACTION_VIEW);
dataId = response.getdataId();
intent.setData(Uri.parse("appName:?pid=" + dataId + "&action=returntoapp"));
startActivityForResult(intent, Globals.DATA_REQUEST_CODE);
setResult(Activity.RESULT_OK);
finish();
但是,当第一个应用程序调用onActivityResult()方法时,我得到了相同的请求代码,但意图为null,结果代码为ACTIVITY\u cancelled
我不明白为什么。试试这个
String packageName = "com.example.app"
public static boolean openApp(Context context, String packageName) {
PackageManager manager = context.getPackageManager();
try {
Intent i = manager.getLaunchIntentForPackage(packageName);
if (i == null) {
return false;
}
i.addCategory(Intent.CATEGORY_LAUNCHER);
context.startActivity(i);
return true;
} catch (Exception e) {
return false;
}
}
onActivityResult在哪里?在我启动另一个应用程序的同一个活动中,您需要从一些积极的用户操作(例如,点击
ListView
行)调用setResult()
,而不是从onPause()
这样的地方调用。Commonware我调用了setResult(),您可以在我的问题中看到这一点,我不会在onPause()中关闭应用程序,而是在进行一些计算和网络通信后关闭此应用程序。setResult(Activity.RESULT\u OK)
,目的在哪里?