我想通过后退按钮最小化我的应用程序时收到短信,当我通过主页按钮最小化然后它接收短信,但是当按下按钮然后没有收到广播消息。 感谢。
我的应用代码是:
@Override
protected void onResume() {
super.onResume();
registerReceiver(receiver, filter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(receiver);
}
和
@Override
public void onReceive(Context context, Intent intent) {
String address = "";
String message = "";
Bundle extras = intent.getExtras();
if (extras != null) {
Object[] smsExtra = (Object[]) extras.get("pdus");
for (int i = 0; i < smsExtra.length; i++) {
SmsMessage sms = SmsMessage.createFromPdu((byte[]) smsExtra[i]);
message += sms.getMessageBody();
address = sms.getOriginatingAddress();
}
Toast.makeText(context, "SMS Received>>" + message +"From >>" + address,
Toast.LENGTH_LONG).show();
}
那么如何通过后退按钮最小化时收到短信感谢。
答案 0 :(得分:2)
当用户显然不能正常工作时,您取消注册广播接收器。而不是在应用程序级别注册,在清单中注册它。这样它就不依赖于应用程序的状态。
要了解更多信息: http://developer.android.com/reference/android/content/BroadcastReceiver.html
答案 1 :(得分:2)
我是以一种小巧的方式做到的...... 我确实喜欢这个。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Display confirmation here, finish() activity.
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
return true;
}
return super.onKeyDown(keyCode, event);
}