我没有找到任何方法将type
意图的属性放入xml
. 但似乎一个具有隐形主题的活动可以模拟我想要的。
正如文件所说:
从另一项活动开始
静态快捷方式不能有自定义意图标志。静态快捷方式的第一个意图将始终设置 Intent.FLAG_ACTIVITY_NEW_TASK 和 Intent.FLAG_ACTIVITY_CLEAR_TASK。这意味着,当应用程序已经运行时,当启动静态快捷方式时,应用程序中的所有现有活动都会被销毁。如果这种行为不可取,您可以使用蹦床活动,或在 Activity.onCreate(Bundle) 中启动另一个活动的不可见活动,然后调用 Activity.finish():
在 AndroidManifest.xml 文件中,蹦床活动应包含属性分配 android:taskAffinity=""。在快捷方式资源文件中,静态快捷方式中的意图应引用蹦床活动。有关蹦床活动的更多信息,请阅读从另一项活动开始。
我们可以android:taskAffinity=""
在文件中添加 InvisibleActivitymanifest
以防止应用程序在单击主页按钮时进入后台。
这是我的隐形活动设置AndroidManifest.xml
<activity
android:name=".InvisibleActivity"
android:excludeFromRecents="true"
android:taskAffinity=""
android:noHistory="true"
android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />
onCreate()
这是我看不见的活动中的整个方法:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "https://www.example.com");
sendIntent.setType("text/plain");
startActivity(sendIntent);
finish();
}
最后这是我的静态快捷方式 xml 文件:
<shortcut
android:enabled="true"
android:shortcutId="share_app_shortcut"
android:icon="@drawable/ic_share"
android:shortcutShortLabel="@string/shortcut_share_description">
<intent
android:action="android.intent.action.VIEW"
android:targetClass=".InvisibleActivity"
android:targetPackage="com.example.shortcut">
</intent>
</shortcut>