我目前正在使用登录系统将GCM实现到应用程序中.我想根据登录到应用程序的用户(一个设备,多个用户)向应用程序发送通知.我经历了这些过程.
我不确定如何让应用程序识别登录到设备的用户并仅将通知推送给该特定用户.而不是用户B登录并获得用户A的通知.任何评论和答案将非常感谢!如果您需要检查我项目中的特定代码,请告诉我们.
我notification_key按照这里描述生成s .
假设由于某些错误我无法存储它,所以我尝试重新注册.
这次我收到400错误的消息"notification_key already exists".
这看起来很奇怪,特别是与将设备注册到GCM相比,您可以根据需要注册多次,并始终获得状态为200的相同注册ID.
现在我无法再次注册,我也无法取消注册,因为我没有notification_id.
有没有办法notification_key从GCM 获得以前生成的?
或者是用不同的方式再次注册的唯一方法notification_key_name?
android push-notification android-notifications google-cloud-messaging
我可以在varArgs上使用forEach()或stream()吗?
protected void getSomeIds (List<String>... varArgs) {
for(List lst:varArgs) {
System.out.println("This works");
}
//Following does not compile
varArgs.forEach();
// nor
varArgs.stream();
}
Run Code Online (Sandbox Code Playgroud) 我使用的是Java 8.
以下代码工作正常:
public void testMethod(List<String> prop1, EmailJson randomModel) {
prop1.stream().forEach(s -> randomModel.getSomeList()
.removeIf(model -> model.getSomeProp().equalsIgnoreCase(s)));
}
Run Code Online (Sandbox Code Playgroud)
如果条件为真,是否可以记录消息?
我正在寻找类似的东西:
public void testMethod(List<String> prop1, EmailJson randomModel) {
prop1.stream().forEach(s -> randomModel.getSomeList()
.removeIf(model -> model.getSomeProp().equalsIgnoreCase(s))
- > if this is true then log some action);
}
Run Code Online (Sandbox Code Playgroud) 我有理解Canonical Registration Id并将其归还给Google的问题.我故意注册了我的Android应用程序两次(进行测试Canonical Registration Id),但是当我尝试向两者发送消息时,Registration Ids我没有得到谷歌的回报Canonical Registration Id.
另外,我想知道Google返回的消息ID的格式是什么意思.我可以在日志中看到它似乎由三部分组成<something>:<something2>%<something3>.知道他们的意思吗?第三部分是否识别设备?
[INFO com.bipper.filters.PushUpdatesFilter] [messageId = 0:1349819220154718%921c249a6e2555b5] [INFO com.bipper.filters.PushUpdatesFilter] [messageId = 0:1349819220242456%921c249a6e2555b5]
看起来我可以list.forEach(a -> a.stuff())直接在我的收藏中调用,而不是list.stream().forEach(a -> a.stuff()).我何时会使用另一个(parallelStream()旁边......)?
我正在做一个项目,我必须否定PPM文件(图像)的像素.
我实现了我的否定函数:
public PPMImage negate()
{
RGB[] negated = new RGB[pixels.length];
System.arraycopy(pixels, 0, negated, 0, pixels.length);
RGB[] negatedArr = Arrays.stream(negated).parallel().map(rgb -> rgb.neg(maxColorVal)).toArray(size -> new RGB[size]);
return new PPMImage(width, height, maxColorVal, negatedArr);
}
Run Code Online (Sandbox Code Playgroud)
与neg(maxColorVal)函数被定义为这样的:
public void neg(int maxColorVal)
{
R = maxColorVal - R;
G = maxColorVal - G;
B = maxColorVal - B;
}
Run Code Online (Sandbox Code Playgroud)
当我编译代码时,我收到以下错误:
error: incompatible types: inferred type does not conform to upper bound(s)
RGB[] negatedArr = Arrays.stream(negated).parallel().map(rgb -> rgb.neg(maxColorVal)).toArray(size -> new RGB[size]);
inferred: void
upper …Run Code Online (Sandbox Code Playgroud) 我使用了TreeMap键是a的位置String,值是类型Integer.当我输出Map对象时,它不按排序顺序打印.
这是我使用的代码:
TreeMap<String, Integer> m = new TreeMap<String, Integer>();
m.put("Hello", 1);
m.put("world", 2);
m.put("Zertt", 5);
m.put("Hello", 1);
m.put("world", 2);
System.out.println("map : " + m);
Run Code Online (Sandbox Code Playgroud)
我希望输出像这样排序:
map:{Hello = 1,world = 2,Zertt = 5}
但相反,我得到了这个:
map:{Hello = 1,Zertt = 5,world = 2}
我有一个与Java 8中的lambda表达式相关的问题.
考虑以下Message课程:
public class Message implements MessageBase
{
private String id;
private String message;
private String author;
private Long timestamp;
public Message()
{
this.id=null;
this.message=null;
this.author=null;
this.timestamp= null;
}
public Message(String id, String message,String author,Long timestamp)
{
this.id=id;
this.message=message;
this.author=author;
this.timestamp= timestamp;
}
public String getId()
{
return id;
}
public void setId(String id)
{
this.id = id;
}
public String getMessage()
{
return message;
}
public void setMessage(String message)
{
this.message = message;
}
public String …Run Code Online (Sandbox Code Playgroud) 我有以下代码:
ArrayList <String> entries = new ArrayList <String>();
entries.add("0");
entries.add("1");
entries.add("2");
entries.add("3");
String firstNotHiddenItem = entries.stream()
.filter(e -> e.equals("2"))
.findFirst()
.get();
Run Code Online (Sandbox Code Playgroud)
我需要知道第一个返回元素的索引是什么,因为我需要在条目内编辑它ArrayList.据我所知,get()返回元素的值,而不是引用.我应该使用
int indexOf(Object o)
Run Code Online (Sandbox Code Playgroud)
代替?