Android / Xamarin,按返回按钮后按意图打开文件并关闭应用程序

Posted

技术标签:

【中文标题】Android / Xamarin,按返回按钮后按意图打开文件并关闭应用程序【英文标题】:Android / Xamarin, Open file with intent and close app after back button pressed 【发布时间】:2021-11-14 21:39:45 【问题描述】:

我的应用程序功能有问题。 我需要打开外部文件以显示它们,例如 .jpeg 或 .xls。为此,我使用 Intents 使用默认系统应用程序打开它们,它工作正常。 但是在我们将首先打开一个文档的情况下,例如一张照片。这将显示在默认应用程序中,然后我在我的应用程序中来回切换。一切都好 但随后我将打开另一个标准 .xls 文档,它将在适当的应用程序中打开该文档,然后返回将首先显示打开的图像,而不是我的应用程序。 我不明白为什么会这样。 我想要的是,当我们以前在文件查看器应用程序中执行操作时,应用程序会退出并且不会留在 ActivityManager 中。 可能吗 ? 我已经尝试了一些意图标志,但没有成功。

我的代码在这里:

                        android.Net.Uri fileUri = FileProvider.GetUriForFile(Android.App.Application.Context, "com.app.fileprovider"
                     , file);
                        Intent intent = new Intent(Intent.ActionView);
                        intent.SetData(fileUri);
                        intent.AddFlags(ActivityFlags.GrantReadUriPermission);
                        intent.AddFlags(ActivityFlags.NewTask);
                        intent.AddFlags(ActivityFlags.NoHistory);
                        Android.App.Application.Context.StartActivity(intent);
                        return true;

非常感谢您的帮助

最大 B

【问题讨论】:

尝试在创建新意图时删除 NoHistory 标签。 嘿!是的,我已经删除了这个标志,这只是一个测试,但不起作用。 我认为你做不到,当你打开另一个应用程序来显示你的文件时,除非你手动关闭,否则应用程序将被添加到堆栈中。你可以遍历你的应用程序进程并关闭ActivityManager 不是你自己的应用程序,但这会关闭一些你不想关闭的应用程序。 嘿!谢谢 Leo,我会尝试使用 ActivityManager。 【参考方案1】:

所以! 我的错,这不是一个真正的问题。 这是一个设计错误。 事实上,在我调用我的函数来调用意图时,我链接了我的打开事件,然后取消绑定它。因此,每次调用我都会调用 X 次文件打开函数,而不会破坏我的变量或变量实例。

意图运作良好 感谢cmets

【讨论】:

以上是关于Android / Xamarin,按返回按钮后按意图打开文件并关闭应用程序的主要内容,如果未能解决你的问题,请参考以下文章

返回 App SpriteKit 后按播放

更改 Xamarin Forms Android 导航页面颜色(按钮和返回)

xamarin android开发 两个按钮 怎么放在同一排上

删除后按后退按钮更新购物车计数

使用后退按钮在选项卡之间导航

用WPF写一个登录界面,我想在输入完密码后按回车就能够验证登陆,而不需要用鼠标单击登陆按钮