添加主屏幕快捷方式时,奇怪的力量关闭在acore上

时间:2010-01-02 17:17:01

标签: android

我想在我的应用中将主屏幕快捷方式添加到各个聊天室。这是我的代码:

Intent roomIntent = roomIntent(room).putExtra("shortcut", true);

Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, roomIntent);
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, room.name);

Parcelable resource = Intent.ShortcutIconResource.fromContext(this, R.drawable.icon);
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, resource);

setResult(RESULT_OK, intent);       
finish();

当我将快捷方式添加到我的主屏幕时,我得到一个Force Close,而不是我自己的进程,而是com.android.acore(!)。我运行调试器并验证我的代码一直执行到finish()的调用。

如果我这样做而不是EXTRA_SHORTCUT_ICON:

intent.putExtra(Intent.EXTRA_SHORTCUT_ICON, R.drawable.icon);

它工作正常并放置快捷方式,快捷方式行为正确 - 但当然快捷方式有Android图标,而不是我的,因为这不是指定图标的正确方法。

当我查看已完成此操作的其他应用的源代码,以及官方Android参考区域中的the one example时,我的代码看起来完全相同。我的图标是我用于应用程序主图标的标准48x48 png,没有任何问题。我已经在运行库存1.6的模拟器上验证了这个问题,还没有测试过其他版本。

我不知道我做错了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

ACTION_CREATE_SHORTCUT的Javadoc表示您应该EXTRA_SHORTCUT_ICON_RESOURCE使用Intent.ShortcutIconResource个对象,而不是您正在使用的EXTRA_SHORTCUT_ICON密钥,用于直接放置Bitmap Intent其他内容{/ 1}}。

你可能也应该为Android bug tracker的崩溃提交一个错误,因为这样的错误不应该导致崩溃。

相关问题