我正在为Android开发,我希望能够获得当前通知的数组.例如,假设我有两个文本和3个facebook通知,我希望能够获得它们的列表,或者至少得到它们的类型.用android api有没有办法做到这一点?
我正在构建一个Gnome shell扩展,我希望能够使用升级的权限做一些事情.所以,我想我需要使用"政策工具包",但我不知道如何去做这件事.
所以,说我想做点什么ifconfig eth0 down或者做什么ifconfig eth0 up
我可以从终端运行:pkexec ifconfig eth0 down它会提示输入密码然后再进行操作.
但是,我应该如何从扩展内部做到这一点?
我很确定它与在/ usr/share/polkit-1/actions中创建文件有关,但我在互联网上找不到任何东西.
我希望能够设置它,以便不需要输入密码,扩展只需运行某个命令.
我知道允许任何命令运行是一个非常糟糕的主意.这不是我要求的,我希望能够只运行一个程序/命令.
编辑:我不确定,但我认为没有必要输入密码可能是不可能的.我只是知道sudo第一次没有问一段时间的密码,所以我想要类似的功能.不确定有什么可能.
所以,我正在尝试这样的父/子类关系:
class ParentClass<C, T> where C : ChildClass<T>
{
public void AddChild(C child)
{
child.SetParent(this); //Argument 1: cannot convert from 'ParentClass<C,T>' to 'ParentClass<ChildClass<T>,T>'
}
}
class ChildClass<T>
{
ParentClass<ChildClass<T>, T> myParent;
public void SetParent(ParentClass<ChildClass<T>, T> parent)
{
myParent = parent;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这是一个编译错误.所以,我的第二个想法是SetParent用a 声明方法where.但问题是我不知道什么类型声明myParent(我知道类型,我只是不知道如何声明它.)
class ParentClass<C, T> where C : ChildClass<T>
{
public void AddChild(C child)
{
child.SetParent(this);
}
}
class ChildClass<T>
{
var myParent; //What should I declare this as?
public void SetParent<K>(ParentClass<K,T> …Run Code Online (Sandbox Code Playgroud) 假设我们有一个跟踪总和的基本移动平均函数.例如:
Queue values;
double sum;
double CalcSMA(double next) {
values.push(next);
sum -= values.pop();
sum += next;
return sum / SMA_LENGTH;
}
Run Code Online (Sandbox Code Playgroud)
如果我们的窗口是5宽,我们用它来做的话就是这样可以解决的一个例子:
2, 2, 2, 2, 2, 2, 2, 1E100, 2, 2, 2, 2, 2, 2, 2, 2.那么输出就是2, 2, 2, 2E99, 2E99, 2E99, 2E99, 2E99, 0, 0, 0.
即使总和并不是那么显着,但仍然可能有一些非常合理的例子,精确度的微小损失可能会使人为增加一小部分.在很长一段时间内,这可能会加起来并成为一个问题.
有没有人有任何关于如何解决精度损失的想法?
编辑:请注意,此功能旨在工作O(1).这是必要的.因此,每次重新计算都不起作用:窗口太大.
我目前想要一个像Deque一样具有索引的数据结构.因此,它应该在前面和后面添加和删除元素O(1),以及基于索引的元素的O(1)访问.想象一下适用于此的设置并不难.
似乎ArrayDeque会是一个自然的选择.但是,ArrayDeque不实现List.由于底层数据结构是一个数组,是否有充分的理由不允许索引?
此外,从更实际的角度来看,有没有人知道任何图书馆正在做我想要的事情.就我所见,Apache Commons没有.
好的,所以它已经有一段时间了,我遇到了#includes的问题
所以我在做
#include "someheader.h"
Run Code Online (Sandbox Code Playgroud)
但它给了我
fatal error: someheader.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
这是一个系统范围的库我想你可以说.我正在运行arch linux,我从repo安装了库,我认为.h文件位于/ usr/include中.
我可以将所有头文件复制到我的代码所在的文件夹中,但这将是一个黑客攻击.
这样做的"正确"方法是什么?
编辑:我说.h文件在/ usr/include中是不正确的,我的意思是库文件夹在那里所以,Emile Cormier的回答在一定程度上起作用.现在的问题是在头文件中有一些包含似乎从我试图访问的方法,那些包括没有发生它给我的错误
undefined reference to Namespace::Class::method()
Run Code Online (Sandbox Code Playgroud)
编辑:好的,所以最终的答案是:
#include <library_name/someheader.h>
Run Code Online (Sandbox Code Playgroud)
并编译
g++ code.cpp -llibrary_name
Run Code Online (Sandbox Code Playgroud) 所以,我有一个 Dictionary<KType,VType> Foo
我有一个主题:
void Thread1() {
...
if (!Foo.TryGetValue(key, out v)) {
Foo.Add(new VType());
}
...
}
Run Code Online (Sandbox Code Playgroud)
唯一一次Foo被另一个线程访问是由a TryGetValue.
那么,我需要锁多少钱?我可以这样做:
void Thread1() {
...
if (!Foo.TryGetValue(key, out v)) {
lock (syncobj) {
Foo.Add(new VType());
}
}
...
}
void Thread2() {
...
lock (syncobj) {
Foo.TryGetValue(key, out v))
}
...
}
Run Code Online (Sandbox Code Playgroud)
Thread1是程序计算的90%,并且TryGetValue被多次调用.所以,最好,我不想每次都拨打电话.
c# ×2
algorithm ×1
android ×1
archlinux ×1
c#-4.0 ×1
c++ ×1
dictionary ×1
generics ×1
gnome-3 ×1
gnome-shell ×1
header ×1
java ×1
linux ×1
parent-child ×1
trygetvalue ×1