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,按返回按钮后按意图打开文件并关闭应用程序的主要内容,如果未能解决你的问题,请参考以下文章
更改 Xamarin Forms Android 导航页面颜色(按钮和返回)