在我的android代码中我从gcm intent插入一些数据到数据库。当我插入而没有检查任何条件时,它正在工作。当我检查接收到的json对象的第一个元素时if语句数据没有插入.I认为如果condition.please帮我一些错误
protected void onMessage(Context context, Intent intent) {
Log.i(TAG, "Received message");
String message = intent.getExtras().getString("title");
if (message == "instru"){
String message1 = intent.getExtras().getString("price");
String message2 = intent.getExtras().getString("price1");
String message3 = intent.getExtras().getString("price2");
String message4 = intent.getExtras().getString("price3");
String message5 = intent.getExtras().getString("price4");
DatabaseHandler1 db = new DatabaseHandler1(getApplicationContext());
int count = db.getRowCount_1();
if(count > 0){
db.resetTables_1();
}
db.addUser_1(message1,message2,message3,message4,message5);
}
else if(message == "signal"){
//else {
String message1 = intent.getExtras().getString("date");
String message2 = intent.getExtras().getString("name");
String message3 = intent.getExtras().getString("buy");
String message4 = intent.getExtras().getString("stop");
String message5 = intent.getExtras().getString("tv");
String message6 = intent.getExtras().getString("tp");
String message7 = intent.getExtras().getString("res");
DatabaseHandler1 db = new DatabaseHandler1(getApplicationContext());
DatabaseHandler1 db = new DatabaseHandler1(getApplicationContext());
int count = db.getRowCount_2();
if(count > 0){
db.resetTables_2();
}
db.addUser_2(message1,message2,message3,message4,message5,message6,message7);
}
displayMessage(context, message);
// notifies user
generateNotification(context, message);
}
收到不同的json对象
$message = array(
"title" => "instru",
"price" => $trade1,
"price1" => "$trade2",
"price2" => "$trade3",
"price3" => "$trade4",
"price4" => "$date");
$message = array(
"title" => "signal",
"date" => $date1,
"name" => $signal_name,
"buy" => $price,
"stop" => $stop,
"tv" => $trig_value,
"tp" => $profit,
"res" => $result,
);
答案 0 :(得分:1)
在java中,要比较String
,您需要使用equals()
代替==
if (message.equals("instru"))
答案 1 :(得分:0)
使用
message.equals("instru")
而不是
message == "instru"
同样适用于' message ==" signal"'
更好
使用
"instru".equals(message)
由于message can be
在某些情况下为null
答案 2 :(得分:0)
不要使用
(message == "signal")
用于比较两个字符串。
在Java编程中使用==运算符来比较两个字符串是坏事。因此,您需要使用 equals() 或 equalsIgnoreCase() 。所以它将是
message.equals("signal")
或
message.equalsIgnoreCase("signal")