我正在制作备份程序,将手机SharedPreferences数据保存到我自己的结构文件中.但我不知道如何列出所有这些,我需要:
例如,2个程序用名称"Program A"和保存了它们的SharedPreferences "Program B".我需要获取thay String数组包含这两个名字.然后,我使用getSharedPreferences"程序A",我需要获得程序保存的所有键.
真的有可能吗?
编辑1:我不知道手机上的节目/活动.我希望得到所有keys节目保存的所有内容.就像您备份所有手机数据一样,但只备份SharedPreferences值.
例如:您的手机有10个程序,每个程序创建一个名为SharedPreferences Program 1到Program 10(当然,他们想要的任何名称).我想获得所有这些Program 1对Program 10字符串.然后,如果Program 1有5个按键叫Key 1到Key 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) 在这个游戏中:http://www.mathsisfun.com/games/allout.html 求解功能可以解决任何情况,无论你如何"滥用"原始板.请告诉我解决这个游戏的算法.我试着思考了好几天但仍未找到解决所有案例的线索.
好的,在阅读了一些答案和评论后(并快速浏览一下Light out游戏),我扩展了我的问题:
如果我扩大网格的大小(比如25x25),游戏会有所不同吗?在可接受的时间内(<2s)仍然有任何可能的算法来解决任何情况?
在微软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?
我想打开当前应用程序的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
我正在尝试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的新手,这超出了我的范围.任何人都可以建议解决方案/调试方式?
我有一个简单的 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) 我正在尝试调用 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
我有这样的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?我可以NodeList从Document班级中获取标签名称吗?
谢谢.
我刚刚发现了这个有趣的问题:
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# 试图做什么?