Hi Guys!

I have the following problem:

The user, who is using the app. should be able to define when he wants to 
send his or her SMS.
Therefore I have a textfield, where the user can define when to send the 
next SMS ( in minutes! ).

Now my problem is that I have two buttons: SMS send and Cancel .

When the user presses the SMS send button an SMS should be sent and this 
SMS should be sent every x minutes ( the minutes the user has already 
defined in the textfield ).
But the Cancel button should cancel this process and here is my problem: As 
soon as the user presses SMS send the Ui hangs and the user is not able to 
press the cancel button anymore.

I know I can solve the problem with a Thread or maybe with the 
"doInBackground" method but I am not sure whether I am on the right track!

Can anyone help me please, I am not sure whether I am right!

Thank you very much!

Here is my code:

package com.example.smsmessageregulary;
 
import android.app.Activity;
import android.app.PendingIntent;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts;
import android.provider.ContactsContract;
import android.telephony.gsm.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
 
public class SMSRegulary extends Activity 
{
    Button btnSendSMS, PhonePicker;
    EditText txtPhoneNo;
    EditText txtMessage;
    EditText txtCounter;
    int counter = 0;  

 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_smsregulary);        
 
        btnSendSMS = (Button) findViewById(R.id.btnSendSMS);
        txtPhoneNo = (EditText) findViewById(R.id.txtPhoneNo);
        txtMessage = (EditText) findViewById(R.id.txtMessage);
        txtCounter = (EditText) findViewById(R.id.txtCounter);
        PhonePicker = (Button) findViewById(R.id.picker);
        

        
        PhonePicker.setOnClickListener(new View.OnClickListener(){

public void onClick(View v) {
// TODO Auto-generated method stub
        ContentResolver cr = getContentResolver();
        Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI,
                null, null, null, null);
        if (cur.getCount() > 0) {
    while (cur.moveToNext()) {
        String id = 
cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name = 
cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
System.out.println(name);
 if 
(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))
 
> 0) {
     //Query phone here.  Covered next
 System.out.println("HERE");
         }
    }
        }
 }

        });
 
        btnSendSMS.setOnClickListener(new View.OnClickListener() 
        {
            public void onClick(View v) 
            {                
                String phoneNo = txtPhoneNo.getText().toString();
                String message = txtMessage.getText().toString();  
                String Repeater = txtCounter.getText().toString();
                Repeater = Repeater + "000";
                Integer r = Integer.valueOf(Repeater);
                long l = r.longValue();
                if (phoneNo.length()>0 && message.length()>0 && 
Repeater.length() == 0)                
                    sendSMS(phoneNo, message);                
                else {
                while ( counter <= 99 ) {
                sendSMS(phoneNo, message);
                try {
Thread.sleep(l);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
                }
                }
            }
        });        
    }

    //---sends an SMS message to another device---
    private void sendSMS(String phoneNumber, String message)
    {        
        PendingIntent pi = PendingIntent.getActivity(this, 0,
            new Intent(this, SMSRegulary.class), 0);                
        SmsManager sms = SmsManager.getDefault();
        sms.sendTextMessage(phoneNumber, null, message, pi, null);        
    } 
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to