3

アプリケーションが戻るボタンで最小化されたときにSMSを受信したいのですが、ホームボタンで最小化したときにSMSを受信しましたが、ボタンを押したときにブロードキャストメッセージを受信しませんでした。ありがとう。

私のアプリコードは次のとおりです。

    @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();
    }

戻るボタンで最小化したときにSMSを受信するにはどうすればよいですか。

4

2 に答える 2

3

このように、少しトリッキーな方法でそれを行いました。

@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);
}
于 2013-03-20T14:06:56.287 に答える
2

ユーザーが明らかに機能しないままになったら、ブロードキャストレシーバーの登録を解除します。アプリレベルで登録する代わりに、マニフェストに登録します。そうすれば、アプリケーションの状態に依存しません。

詳細については、http: //developer.android.com/reference/android/content/BroadcastReceiver.htmlをご覧ください。

于 2013-03-20T09:25:32.647 に答える