Tag: android

MonoDroid:从Web服务读取大型json字符串时间歇性失败

我在一个线程上使用下面的代码(在ui中显示进度对话框)从ASP.Net MVC Web服务中读取json字符串。 数据可以在1 mb和4 mb之间。 public static class WebRequestEx { public static string ExecuteRequestReadToEnd(this WebRequest req) { var resp = req.GetResponse(); using (var resps = resp.GetResponseStream()) { StringBuilder sb = new StringBuilder(); // read through the stream loading up the string builder using (var respRdr = new StreamReader(resps)) { //return respRdr.ReadToEnd(); while (!respRdr.EndOfStream) { […]

如何在Xamarin for Android中压缩文件?

我有一个函数创建一个zip文件传递的文件的字符串数组。 该函数确实成功创建了zip文件及其中的zip条目文件,但这些zip条目文件为空。 我尝试了几种不同的方法 – 下面的function代码是我最接近工作的东西: public static bool ZipFile(string[] arrFiles, string sZipToDirectory, string sZipFileName) { if (Directory.Exists(sZipToDirectory)) { FileStream fNewZipFileStream; ZipOutputStream zos; try { fNewZipFileStream = File.Create(sZipToDirectory + sZipFileName); zos = new ZipOutputStream(fNewZipFileStream); for (int i = 0; i < arrFiles.Length; i++) { ZipEntry entry = new ZipEntry(arrFiles[i].Substring(arrFiles[i].LastIndexOf("/") + 1)); zos.PutNextEntry(entry); FileStream fStream = File.OpenRead(arrFiles[i]); […]

可以异步/等待了解Android活动生命周期吗?

我一直想知道使用async / await在Android上生成响应式UI。 我一直在使用一个简单的发布/子包装服务围绕异步函数(这是很多样板,但工作)但我有这个痒在我身边,告诉我应该有一个更好的方法。 对包装器服务的需求源于android上的活动在配置更改(设备轮换,语言更改……)上被“回收”(销毁和重新创建)这一事实,因此,如果我触发异步function,则可能会生成await回调被破坏的活动和各种各样的坏事可能源于此。 异步后端是否可以知道代码应该在不同的对象(新创建的活动)中启动,而不需要编译器黑暗魔法? 理由 :使用Xamarin在iOS和Android之间共享代码都很容易,直到你遇到这个问题。 如果以某种方式解决/实现,我看到两个平台之间的共同控制器的潜力。 编辑:我决定用事件总线(TinyMessenger)解决这个问题,同时我理解@Servy提出的SynchronizationContext解决方案

Xamarin.UITesting NU1201错误:Android 8.1与.NETFramework 4.6.1不兼容

在过去的几天里我一直有一个小问题,我将在Visual Studio 2017上创建一个新的Xamarin Forms项目并添加一个Xamarin.UITest跨平台测试项目进行unit testing我在参考时收到一系列NU1201错误UITest项目中的.Android应用程序。 这是我得到的确切错误: Error NU1201 Project App1.Android is not compatible with net461 (.NETFramework,Version=v4.6.1) / win-x64. Project App1.Android supports: monoandroid81 (MonoAndroid,Version=v8.1) 我玩过Android版本的数字,看看UITesting软件包是否支持最新的android,但不管是什么版本的android i目标,问题依然存在。 这是该项目的屏幕截图。 所有代码都与默认项目保持不变,并在模拟器中运行良好,但只有在Android应用程序被引用到UITest项目时才会产生这些错误。

Xamarin表单 – 让webview回归

大家早, 我正在开发Xamarin.Forms中的一个小型跨平台webview项目。 我有webview工作,但我想添加一个工具栏,其中有一个后退和前进按钮。 我尝试了许多不同的方法,但似乎没有什么工作特别好。 我试着按照这个人发布导航工具栏来实现这个function 我将在下面附上我的代码,如果有人可以帮我解决这个或者一个很棒的解决方案! 如果此问题已经被其他用户先前回答,那么我道歉。 App.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using Xamarin.Forms; namespace DisplayWebPage { public class App : Application { public App() { // The root page of your application MainPage = new WebPage(); } protected override void OnStart() { // Handle when your app starts } protected […]

xamarin android应用程序:如何获取我的项目的Resources文件夹

我如何获得我的项目的Resources文件夹,如Resources / Drawable,我需要这个来存储应用程序上的图像供以后使用 我试过: var Path = (System.Environment.CurrentDirectory + “/Resources/Drawable”); 但我没有工作,因为我在地图App_Code中定义的.cs(类文件)中使用它我如何获得资源地图我认为有一个更容易的方法来获得这个。

Firebase云消息传递和C#服务器端代码

我在我的Android和iOS应用程序中使用FCM。 客户端代码工作正常,因为从Firebase控制台我可以向两个平台发送通知而不会出现任何问题。 使用我的C#代码,我可以成功向Android设备发送通知,但除非直接来自Firebase通知控制台,否则通知永远不会出现在iPhone上。 我不知道是什么给了。 C#服务器端代码 try { var applicationID = “application_id”; var senderId = “sender_id”; string deviceId = “device_id_of_reciever”; WebRequest tRequest = WebRequest.Create(“https://fcm.googleapis.com/fcm/send”); tRequest.Method = “post”; tRequest.ContentType = “application/json”; var data = new { to = deviceId, notification = new { body = “This is the message”, title = “This is the title”, icon = […]

在Xamarin中隐藏软键盘

在Xamarin.forms便携式表单项目中聚焦Entry时,如何隐藏软键盘以显示? 我假设我们必须为此编写特定于平台的渲染器,但以下内容不起作用: 我创建自己的入口子类: public class MyExtendedEntry : Entry { } 然后在xamarin.android项目中我的渲染器: public class MyExtendedEntryRenderer : EntryRenderer { protected override void OnElementChanged(ElementChangedEventArgs e) { base.OnElementChanged(e); if (Control != null) { new Handler().Post(delegate { var imm = (InputMethodManager)Control.Context.GetSystemService(Context.InputMethodService); var result = imm.HideSoftInputFromWindow(Control.WindowToken, 0); }); } } } 按预期调用OnElementChanged ,当使用Handler.Post()我也得到一个WindowToken而不是null。 可悲的是, HideSoftInputFromWindow的返回值始终为false,单击条目时软键盘仍会显示。

Scrollview监听器在Xamarin for Android中无效?

我在Xamarin中使用C#来创建一个Android应用程序。 我创建了scrollview的扩展。 这是我的代码 public class EndlessScroll : ScrollView { public EndlessScroll (Context context) : base (context) { } public EndlessScroll(Context context, IAttributeSet attrs) : base(context, attrs) { } public EndlessScroll(Context context, IAttributeSet attrs, int defStyle) : base(context, attrs, defStyle) { } public interface OnScrollViewListener { void onScrollChanged(EndlessScroll v, int l, int t, int oldl, int […]

内存泄漏处理Xamarin.Forms

我在我的应用程序中有一个内存泄漏问题,我用Xamarin.Forms创建。 我的应用程序包含带有图像的ListView。 如果我点击一个项目并返回ListPage,我可以在“输出”窗口中看到内存耗尽。 我试过在我的ContentPage的OnDisappearing()中调用GC.Collect() 。 我在Android项目中看到了base.Dispose() 。 但我不知道如何使用它。 ArticleListPage.xaml