如您所知,当您长按主屏幕时,手机会显示一个列表菜单.您可以添加快捷方式,小部件,文件夹等.我希望我的应用程序位于快捷方式列表中.
我怎样才能做到这一点?
我相信这会得到回答,但事实证明我无法找到它.所以请原谅我的冗余.
我想要做的是模仿"Home"按钮,它将一个回到Android的主屏幕.所以这就是导致我出现问题的原因:
对于问卷调查应用程序,我使用单个活动(称为ItemActivity)调用自身(在使用意图时也是递归吗?)从一个问题跳转到另一个问题:
Questionnaire.serializeToXML();
Intent i = new Intent().setClass(c, ItemActivity.class);
if(Questionnaire.instance.getCurrentItemNo() == Questionnaire.instance.getAmountOfItems()) {
Questionnaire.instance.setCompleted(true);
} else Questionnaire.instance.nextItem();
startActivity(i);
Run Code Online (Sandbox Code Playgroud)
最后一个屏幕显示的内容类似于"感谢您参与"以及之前描述的按钮,该按钮应该返回到主屏幕.但我真的没有得到如何正确退出活动.我已经使用了,this.finish();
但这又奇怪地再次打开了"谢谢"屏幕.那么我怎样才能通过跳回主屏幕退出?
很抱歉给您带来不便.
此致,
Steff
我已经编写了以下代码,用于在主屏幕中创建我的应用程序的快捷方式:
private void createShortcut() {
Intent shortcutIntent = new Intent(this, ActActivation.class);
shortcutIntent.setClassName("org.mabna.order",
"org.mabna.order.ui.ActActivation");
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Intent addIntent = new Intent();
addIntent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent);
addIntent.putExtra(Intent.EXTRA_SHORTCUT_NAME, "test");
addIntent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
Intent.ShortcutIconResource.fromContext(this, R.drawable.icon));
addIntent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
this.sendBroadcast(addIntent);
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但每次运行我的程序并运行此代码时,我收到消息"创建快捷方式测试",并在我的主屏幕上添加一个新的快捷方式.打开我的应用程序10次后,我有10个快捷方式.
如何阻止此消息框并创建多个快捷方式?
是否可以在主屏幕上显示任何类型的通知(来自我的应用程序)?
提前致谢!
当用户点击Home时,他可以选择启动器,他也可以选择是否将其设置为默认值.问题是之后很难再改变它.
为了解决这个问题,我添加了一个"重置首选启动器"来触发这个:
getPackageManager().clearPackagePreferredActivities(getPackageName());
Run Code Online (Sandbox Code Playgroud)
但是,如果他选择了我的发射器,这条线只会重置首选发射器.我需要一个清除首选启动器的代码片段,因此下次用户点击主页时,他会再次获得选项.