小编Luk*_* Vo的帖子

获取所有SharedPreferences名称及其所有密钥?

我正在制作备份程序,将手机SharedPreferences数据保存到我自己的结构文件中.但我不知道如何列出所有这些,我需要:

例如,2个程序用名称"Program A"和保存了它们的SharedPreferences "Program B".我需要获取thay String数组包含这两个名字.然后,我使用getSharedPreferences"程序A",我需要获得程序保存的所有键.

真的有可能吗?

编辑1:我不知道手机上的节目/活动.我希望得到所有keys节目保存的所有内容.就像您备份所有手机数据一样,但只备份SharedPreferences值.

例如:您的手机有10个程序,每个程序创建一个名为SharedPreferences Program 1Program 10(当然,他们想要的任何名称).我想获得所有这些Program 1Program 10字符串.然后,如果Program 1有5个按键叫Key 1Key 5,我想要获得这些密钥的名字.

编辑2:根据NikolaMKD指南,这是我到目前为止所做的,但列表返回所有程序,在所有行都有"无首选项",即使在第一行,我保存了SharedPreferences我的活动:

public class Test extends ListActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        SharedPreferences preferences = getSharedPreferences("Test", 1);
        // No matter what name is: Test or the package name
        Editor editor = preferences.edit();
        editor.putInt("TestKey", 0);
        editor.commit();

        List<ResolveInfo> Temp …
Run Code Online (Sandbox Code Playgroud)

backup android sharedpreferences

7
推荐指数
3
解决办法
1万
查看次数

"Flip all"(Light Out)游戏的任何算法?

在这个游戏中:http://www.mathsisfun.com/games/allout.html 求解功能可以解决任何情况,无论你如何"滥用"原始板.请告诉我解决这个游戏的算法.我试着思考了好几天但仍未找到解决所有案例的线索.

好的,在阅读了一些答案和评论后(并快速浏览一下Light out游戏),我扩展了我的问题:

如果我扩大网格的大小(比如25x25),游戏会有所不同吗?在可接受的时间内(<2s)仍然有任何可能的算法来解决任何情况?

java algorithm

7
推荐指数
1
解决办法
1万
查看次数

Task.ContinueWith不适用于OnlyOnCanceled

在微软70-483关于使用CancellationToken的考试的参考书中,取消信号的第一种方法是抛出异常,然后介绍第二种方法:

您还可以添加仅在取消任务时执行的继续任务,而不是捕获异常.在此任务中,您可以访问引发的异常,如果合适,您可以选择处理它.清单1-44显示了这样的延续任务的样子

这是列表1-44:

        Task task = Task.Run(() =>
        {
            while (!token.IsCancellationRequested)
            {
                Console.Write("*");
                Thread.Sleep(1000);
            }
        }, token).ContinueWith((t) =>
        {
            t.Exception.Handle((e) => true);
            Console.WriteLine("You have canceled the task");
        }, TaskContinuationOptions.OnlyOnCanceled);
Run Code Online (Sandbox Code Playgroud)

这是我的完整Main方法代码:

static void Main(string[] args)
{
    CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
    var token = cancellationTokenSource.Token;

    Task task = Task.Run(() =>
    {
        while (!token.IsCancellationRequested)
        {
            Console.Write("*");
            Thread.Sleep(1000);
        }
    }, token).ContinueWith((t) =>
    {
        t.Exception.Handle((e) => true);
        Console.WriteLine("You have canceled the task");
    }, TaskContinuationOptions.OnlyOnCanceled);

    Console.ReadLine();
    cancellationTokenSource.Cancel();
    task.Wait();

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

但是,与我所说的不同,当我按Enter时,异常(AggregationException)仍然会在task.Wait()调用时抛出到Main方法.此外,如果我删除该调用,第二个任务永远不会运行(不会抛出异常).有什么我做错了吗?是否可以在不使用的情况下处理异常try-catch

.net c# asynchronous task

7
推荐指数
1
解决办法
1869
查看次数

AppId和Package Id是否相同?

我想打开当前应用程序的Windows应用商店(因此用户可以对应用进行评级/评论).在这样做时,我需要获取App ID.但是,我在SO中看到这篇文章CurrentApp.AppId需要花费很多时间,并提供Package ID作为替代.我以前从未在Windows应用商店上发布应用,如果没有在Windows应用商店发布/发布的应用,则无法立即测试.

任何人都可以帮我确认以下两行代码吗?

        //var appId = CurrentApp.AppId.ToString();
        var appId = Windows.ApplicationModel.Package.Current.Id;
Run Code Online (Sandbox Code Playgroud)

windows-store-apps win-universal-app uwp windows-10-universal

7
推荐指数
1
解决办法
2284
查看次数

编译/编码时的值验证

我使用亚马逊SDK并注意到这个"警告":

在此输入图像描述

这怎么可能?我没有安装任何插件或扩展,我只是通过Nuget安装AWS SDK.它是标准的C#/ Visual Studio功能吗?

c# visual-studio

7
推荐指数
1
解决办法
54
查看次数

无法在Docker Swarm中启动任务/服务:Win32中的hnsCall失败:参数不正确

我正在尝试Docker入门教程,第3部分(服务).因此,我需要初始化群并部署堆栈的部分,我的所有服务状态都被拒绝:

在此输入图像描述

完整错误(使用--no-trunc)是:

在Win32中hnsCall失败:参数不正确.(0×57)

以下是我正在做的步骤:

  • 确保我的图像正确(docker run效果很好,我localhost:4000成功访问).然后我停下容器以确保它不会干扰.

  • 当我启动swarm时,它说我有多个地址,所以我选择了一个随机的(我尝试了其中任何一个,结果相同)使用--advertise-addr.

  • docker stack deploy工作,但当我检查状态时docker service ps,它们都没有.localhost:4000没有听众.

  • 注意:我将Docker切换到Windows容器.

我是Docker的新手,这超出了我的范围.任何人都可以建议解决方案/调试方式?

windows docker docker-compose docker-swarm

7
推荐指数
1
解决办法
396
查看次数

如何在 System.Text.Json.Nodes 命名空间中使用 .NET 6 JsonNode 复制 JSON 值?

我有一个简单的 JSON,我想重命名(可能通过复制然后删除)一个密钥。.NET 小提琴

        const string input = @"{ ""foo"": [{""a"": 1}, {""b"": null}] }";
        var node = JsonNode.Parse(input);
        Console.WriteLine(node); // Output: the JSON
        Console.WriteLine(node["foo"][0]["a"]); // Output: 1
        
        // How to copy/rename?
        node["bar"] = node["foo"];
        Console.WriteLine(node["bar"][0]["a"]); // Should be 1
Run Code Online (Sandbox Code Playgroud)
{
  "foo": [
    {
      "a": 1
    },
    {
      "b": null
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

如何复制/重命名它?我尝试使用node["foo"].AsValue()但效果不佳。错误是

该节点必须是“JsonValue”类型


我刚刚找到了一个解决方法,通过转换为 JSON 字符串并再次解析它,但我希望有更好的方法来做到这一点。

node["bar"] = JsonNode.Parse(node["foo"].ToJsonString());
Run Code Online (Sandbox Code Playgroud)

c# json deserialization system.text.json .net-6.0

7
推荐指数
1
解决办法
1万
查看次数

仅当通过调用(Google Identity Services)GIS 的 google.accounts.oauth2.revoke 撤销令牌时才会出现 CORS 问题

我正在尝试调用 GSI Javascriptgoogle.accounts.oauth2.revoke方法。在底层,它向https://oauth2.googleapis.com/revoke发送请求。但是存在 CORS 问题:

await new Promise(r => google.accounts.oauth2.revoke(token, r));
Run Code Online (Sandbox Code Playgroud)

从源“https://localhost:44397”访问“https://oauth2.googleapis.com/revoke”处的 XMLHttpRequest 已被 CORS 策略阻止:“Access-Control-Allow-Credentials”标头的值当请求的凭据模式为“include”时,响应为“”,该响应必须为“true”。XMLHttpRequest 发起的请求的凭据模式由 withCredentials 属性控制。

这些是与 CORS 相关的响应标头:

  • 访问控制允许来源: https://localhost:44397

  • 访问控制公开标头:日期、变化、变化、变化、内容编码、服务器、内容长度

然而,所有其他功能都运行良好。这是谷歌方面的错误还是我的代码?如果是 Google 的问题,我该在哪里举报?如果是我的问题,我做错了什么?

javascript browser oauth-2.0 google-identity-toolkit google-identity

7
推荐指数
1
解决办法
707
查看次数

从Android(XML)文档中的节点获取标签名称元素?

我有这样的XML:

  <!--...-->
  <Cell X="4" Y="2" CellType="Magnet">
    <Direction>180</Direction>
    <SwitchOn>true</SwitchOn>
    <Color>-65536</Color>
  </Cell>
  <!--...-->
Run Code Online (Sandbox Code Playgroud)

有很多Cell elements,我可以获得Cell Nodes GetElementsByTagName.但是,我意识到Node班级没有GetElementsByTagName方法!如何Direction从该单元节点获取节点,而无需查看列表ChildNodes?我可以NodeListDocument班级中获取标签名称吗?

谢谢.

xml android xml-parsing

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

为什么 C# 尝试转换 int?使用 Math.Min 时转换为字节?

我刚刚发现了这个有趣的问题:

int done = 50;
int? total = 100;

var perc = done * 100 / total; // No problem

// Error: Argument 2: cannot convert from 'int?' to 'byte'
// Argument 1 is still int32
var perc2 = Math.Min(100, done * 100 / total);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

起初,我的代码只需要第一个perc. 令人惊讶的是那里没有错误,因为我错过了null应该在那里的支票。直到后来我才发现我的错误:

在某些情况下,估计值total比应有的值要少,但百分比需要限制在 100,所以我添加了Math.Min. 现在我发现我错过了空检查,并且错误消息有点误导。

这里发生了什么?在这种情况下,C# 试图做什么?

.net c# nullable operation visual-studio

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