我正在使用蓝牙聊天示例应用程序中的代码。我想在用户离开应用程序时,他应该能够接收数据。所以,如果我这样做:
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf, 0, msg.arg1);
mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMessage);
/***************************ADDED***************************/
System.out.println("Number is"+(int)(readMessage.charAt(0)));
/***************************ADDED***************************/
break;
我确实在DDMS中看到了println语句。
如果我这样做:
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf, 0, msg.arg1);
mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMessage);
/***************************ADDED***************************/
System.out.println("Number is"+(int)(readMessage.charAt(0)));
Toast.makeText(getApplicationContext(), "received!! "
+ mConnectedDeviceName, Toast.LENGTH_SHORT).show();
/***************************ADDED***************************/
break;
即使我离开应用程序而且我在其他应用程序中,我确实看到了Toast消息。
最后我真正想要的是,无论我的应用程序在收到特定数据时是否未运行,打开一个警告对话框,如果我按是例如制作一些东西(我想发一个http请求,是的,并且不会转移到我的应用程序。)
这是我的代码:
case MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
String readMessage = new String(readBuf, 0, msg.arg1);
mConversationArrayAdapter.add(mConnectedDeviceName+": " + readMessage);
/***************************ADDED***************************/
new AlertDialog.Builder(getApplicationContext())
.setTitle("Title")
.setMessage("Message")
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
//make http request
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
// @Override
public void onClick(DialogInterface dialog, int which) {
//open my app
}
}).show();
/***************************ADDED***************************/
break;
在那种情况下,当我离开我的应用程序并接收数据时,我会收到一个力量。我认为argment getApplicationContext是错误的,但我不知道该使用什么。
Sollution:我使用了通知。