Начиная деятельность с packageinfo - PullRequest
1 голос
/ 20 февраля 2010

Есть ли способ запустить намерение из packageinfo?Я искал и не нашел его.

Я пытался так

Intent i = new Intent(); 
i.setAction(Intent.ACTION_MAIN);
i.addCategory(Intent.CATEGORY_LAUNCHER);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
i.setComponent(new ComponentName(p.applicationInfo.packageName,p.applicationInfo.name));
startActivity(i);

, но это не работает, потому что p.applicationInfo.name всегда равно нулю.

Ответы [ 2 ]

1 голос
/ 15 января 2014

Следующий код работал для меня с использованием SDK 8.18

Предполагая, что "p" является вашим PackageInfo

ApplicationInfo appInfo = p.applicationInfo;

String packageName = appInfo.packageName;

startIntent = getPackageManager().getLaunchIntentForPackage(packageName);

if(startIntent != null){
    startActivity(startIntent);
}
0 голосов
/ 20 марта 2010

Попробуйте использовать следующий код:

Intent i = getPackageManager().p.applicationInfo.packageName(p.applicationInfo.packageName);
startActivity(i);

перед началом действия вы можете установить любые флаги (i.setFlags()), если вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...