小编Pel*_*avn的帖子

在iOS上的后台提取中初始化MvvmCross

我正在开发一个获取远程后台获取(又名静默通知)的应用程序.

我所做的是使用Mvx.Resolve解析服务,通过网络进行提取.当应用程序启动并投入后台时它工作正常 - 但由于它不保证它保持在那里(低内存或人们强制关闭所有后台应用程序),因此MvvmCross不再初始化,我需要初始化它当应用程序被唤醒时

但是我当时似乎不能运行Setup()和setup.Initialize(),因为Setup构造函数需要一个UIWindow(当后台启动时将会为null)并且解析null会抛出异常.

我知道Android有一个单例类,可以确保MvvmCross可用,如下所示:

var setupSingleton = MvxAndroidSetupSingleton.EnsureSingletonAvailable(this);
setupSingleton.EnsureInitialized();
Run Code Online (Sandbox Code Playgroud)

但我似乎无法在iOS平台上找到这样的东西.Setup类有一个方法EnsureInitialized(),但仍然需要我通过安装构造函数,这需要一个UIWindow,如前所述.

谁能告诉我这样做的方法?一种解决方案是仅手动初始化所​​需的服务.但这似乎是一个糟糕的解决方案,因为某些服务可能需要通过MvvmCross Ioc加载其他服务.

谢谢

xamarin.ios ios mvvmcross xamarin

6
推荐指数
0
解决办法
487
查看次数

使用读取和写入流来保存文件时损坏的图像

程序员大家好

我正在使用Xamarin(iOS)在应用程序中实现下载功能,以获得正在下载的文件的进度.

我使用的代码是来自网络各处的各种示例,显示相同的主体,编码风格的最大区别.它们都在System.IO.File上使用相同的ReadAsync和WriteAsync函数,并使用字节数组作为缓冲区.

但无论我转向什么样的例子,它都会导致图片上出现不同的文物,如下所示:

(原始/下载)

我似乎无法找到任何理由发生这种情况.我尝试了不同的东西,看看有什么可以触发这个.我发现将缓冲区更改为更大的大小(比如10240)会导致更多的伪像,而更小的缓冲区(比如1024)会导致更少的伪像.

在调试不同的东西时,我找到了"避免"这种情况发生的"方法",但这包括在WriteAsync刚完成后立即添加一个任务延迟,持续20毫秒(在代码中注释掉) - 不是我想要的解决方案有,但告诉问题可能在于两个流的使用(据我所知,'仅限'基本用法').我也尝试使用非异步方法,但给出了相同的结果.

希望有人能告诉我这里做错了什么,以及为什么.

提前致谢

public async Task<bool> MakeDownloadRequestAsync(string url, string destination, Action<string, long, long, float> progress = null) {
    if (_downloadHttpClient == null) {
        _downloadHttpClient = new HttpClient (new NativeMessageHandler());
    }

    bool finished = false;

    try {
        var result = await _downloadHttpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);

        long receivedBytes = 0;
        long totalBytes = result.Content.Headers.ContentLength.HasValue ? result.Content.Headers.ContentLength.Value : 0;

        System.Diagnostics.Debug.WriteLine ("Started download file: {0}", url);

        using (var stream = await _downloadHttpClient.GetStreamAsync (url))
        {
            byte[] buffer = new …
Run Code Online (Sandbox Code Playgroud)

c# httpclient filestream xamarin.ios xamarin

6
推荐指数
1
解决办法
854
查看次数

标签 统计

xamarin ×2

xamarin.ios ×2

c# ×1

filestream ×1

httpclient ×1

ios ×1

mvvmcross ×1