간단한 SMS 암호화 해서 전송하는 프로그램인데요.... 어플 처음 설치하고나서 제일 처음 메세지를 전송하면 암호화 했던 메세지가 복호화 되서 화면에 날 나타나는데.... 2번째 메세지를 받을때 부터 문제가 발생하더라구요. 브로드 캐스트 리시버에서 잘못 받아왓나 확인해 봤는데 메세지는 확실히 잘 받아왔는데 이상하게도 제일 처음에 읽어 들였던 메세지를 잘못 받아오는거에요?? 이유를 모르겠습니다....
아무래도 메세지 수신 엑티비티에서 인턴드를 통해서 데이터를 잘 못받아와서 그런것 같은데 책을 뒤졌도 방법이 없어서요 답변 부탁드립니다.
public class SMSReceiver extends BroadcastReceiver {    //브로드캐스트 클래스

    @Override
    public void onReceive(Context context, Intent intent) {
        Bundle extras = intent.getExtras();
       
        if(extras != null){
            Object[] pdus = (Object[])extras.get("pdus");
            SmsMessage[] messages = new SmsMessage[pdus.length];
           
            for(int i=0; i<pdus.length; i++){
                messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
            }
           
            for(SmsMessage message : messages){
                String msg = message.getMessageBody();
                String from = message.getOriginatingAddress();
               
               
                Toast.makeText(context, from + " : " + msg, Toast.LENGTH_LONG).show();
               
                Notification notification = new Notification(android.R.drawable.ic_input_add,
                    "메세지 수신",System.currentTimeMillis());
               
                NotificationManager nm = (NotificationManager)context.
                    getSystemService(context.NOTIFICATION_SERVICE);
               
                Intent in = new Intent(context, ReceiveSMS.class);
               
                //Log.v("number : ",from);
                //Log.v("message : ",msg);
               
               
                in.putExtra("sender_number",from);
                in.putExtra("message", msg);
                Log.v("=========브로드캐스트리시버======== : ","=========================");
                Log.v("number : ",in.getStringExtra("sender_number"));
                Log.v("message : ",in.getStringExtra("message"));
               
                //context.startActivity(in);
                PendingIntent inten =
                    PendingIntent.getActivity(context, 0, in, 0);
               
                notification.setLatestEventInfo(context, from, msg, inten);
                nm.notify(1234,notification);
            }
        }
    }
}

public class ReceiveSMS extends Activity {             //메세지 수신 액티비티
    private String sender_number;
    private String message;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.v("===========ReceiveSMS==============","=====onCreate()========");
        setContentView(R.layout.receivesms);
   
        
        EditText sender = (EditText)findViewById(R.id.sender_number);
        EditText msg = (EditText)findViewById(R.id.receve_message);
        EditText key = (EditText)findViewById(R.id.receve_key_editbox);
        Button btn = (Button)findViewById(R.id.decoder_button);
        Button exit_btn = (Button)findViewById(R.id.receve_exit);

        // TODO Auto-generated method stub

       
        Intent data = getIntent();
        sender_number = data.getStringExtra("sender_number");
        message = data.getStringExtra("message");

     
        Log.v("sender_number",data.getStringExtra("sender_number"));
        Log.v("message",data.getStringExtra("message"));

        //복호화영역 - 시작
       
        char[] arr = message.toCharArray();
        for(int i = 0 ; i < arr.length ; i++)
            arr[i] -=1;
        message = String.valueOf(arr);
       
        sender.setText(sender_number);
        msg.setText(message);
       
        ///복호화영역 - 끝
        NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);
        nm.cancel(1234);
        exit_btn.setOnClickListener(new OnClickListener() {
           
            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                finish();
            }
        });
    }
   
    protected void onPause(){
        super.onPause();
        Log.v("===========ReceiveSMS==============","=====onPause()========");
    }
   
    protected void onStop(){
        super.onStop();
        Log.v("===========ReceiveSMS=====================","=====onStop()========");
    }
    protected void onRestart(){
        super.onRestart();
        Log.v("===========ReceiveSMS=====================","=====onRestart()========");
    }
    protected void onResume(){
        super.onResume();
        Log.v("===========ReceiveSMS=====================","=====onRresume()========");   
    }
    protected void onStart(){
        super.onStart();
        Log.v("===========ReceiveSMS=====================","=====onStart()========");
    }
}
왜그런지 답변좀 부탁드립니다...
혹시나 보기 힘드시면 파일통째로 보내드리겠습니다..