你如何使Android“Home”快捷方式绕过应用程序的历史记录?

我有一个应用程序,允许您创建特定活动的主页“快捷方式”.事实证明,我的一些用户将使用该应用程序,点击主键以执行其他操作,然后使用其中一个快捷方式跳回该活动.由于应用程序仍在内存中,因此只需在其他应用程序之上打开新活动,“后退”键将在整个历史记录中将其恢复.我想要发生的是,如果他们使用快捷方式然后有效地杀死历史记录并让后退键退出应用程序.有什么建议?

解决方法

首先,在Manifest中设置 taskAffinity,使Activity作为一个不同的“任务”运行:

<activity
        android:taskAffinity="" 
        android:name=".IncomingShortcutActivity">
        <intent-filter>
            <action android:name="com.example.App.Shortcut"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
</activity>

然后,在构建快捷方式时,设置FLAG_ACTIVITY_NEW_TASK和FLAG_ACTIVITY_CLEAR_TOP标志.就像是:

// build the shortcut's intents
final Intent shortcutIntent = new Intent();
shortcutIntent.setComponent(new ComponentName(this.getPackageName(),".IncomingShortcutActivity"));
shortcutIntent.putExtra(EXTRA_STOPID,Integer.toString(this.stop_id));
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
shortcutIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
final Intent intent = new Intent();
intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT,shortcutIntent);
// Sets the custom shortcut's title
intent.putExtra(Intent.EXTRA_SHORTCUT_NAME,custom_title);
// Set the custom shortcut icon
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,Intent.ShortcutIconResource.fromContext(this,R.drawable.bus_stop_icon));
// add the shortcut
intent.setAction("com.android.launcher.action.INSTALL_SHORTCUT");
sendbroadcast(intent);

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...