I m working on SMS feature of android and I can send users location and address via sms to a limited number of contacts as its my apps requirement , now i want to implement Progress dialog so when users click on the send button the progress dialog should be appear and after sending sms to all contacts the progress dialog should disappear .
I searched alot for this but its making me very confuse on how to do it for my application because i am a beginner in android!
can anyone please help me on how to implement onPreExecute(),onPostExecute() and doInBackground() methods in my class, here i am including my java class for sending sms.
package com.example.ghaznavi.myapp;
import android.app.Activity;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.telephony.SmsManager;
import android.util.Log;
import android.widget.Toast;
import android.content.IntentFilter;
public class SmsHandler{
Settings setObj=new Settings();
double latitude,longitude;
public SmsHandler() {
}
public void SendSms(final Context hcontext)
{
GPSService mGPSService = new GPSService(hcontext);
LocationAddress locObj=new LocationAddress();
mGPSService.getLocation();
latitude = mGPSService.getLatitude();
longitude = mGPSService.getLongitude();
StringBuilder sb = new StringBuilder(160);
String addd= locObj.getAddressFromLocation(latitude,longitude,hcontext);
sb.append("Hi, I m in trouble, Please Help!\n\n");
if ((latitude != 0.0) && (longitude!= 0.0)) {
sb.append("Map Link:").append("\n").append("https://maps.google.com/maps?q=").append(latitude).append("%2C").append(longitude).append("\n\n");
}
if (addd != null) {
sb.append("Address: ").append(addd).append("\n\n");
}
sb.append( "- My Application");
setObj.Initialize(hcontext);
if (setObj.GetContactListCount()!=0)
{
for(int i=0;i<setObj.GetContactListCount();i++)
{
try
{
String SENT = "SMS_SENT";
PendingIntent sentPI = PendingIntent.getBroadcast(hcontext, 0, new Intent(
SENT), 0);
BroadcastReceiver sendSMS = new BroadcastReceiver() {
@Override
public void onReceive(Context arg0, Intent arg1) {
switch (getResultCode()) {
case Activity.RESULT_OK:
Toast.makeText(hcontext, "SMS sent Successfully",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
Toast.makeText(hcontext, "Generic failure",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NO_SERVICE:
Toast.makeText(hcontext, "No service",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_NULL_PDU:
Toast.makeText(hcontext, "Null PDU",
Toast.LENGTH_SHORT).show();
break;
case SmsManager.RESULT_ERROR_RADIO_OFF:
Toast.makeText(hcontext, "Radio off",
Toast.LENGTH_SHORT).show();
break;
}
}
};
SmsManager localSmsManager = SmsManager.getDefault();
if (sb.toString().length() <= 160) {
hcontext.registerReceiver(sendSMS, new IntentFilter(SENT));
localSmsManager.sendTextMessage(setObj.GetContactListNumber()[i], null, sb.toString(), sentPI, null);
} else {
hcontext.registerReceiver(sendSMS, new IntentFilter(SENT));
localSmsManager.sendTextMessage(setObj.GetContactListNumber()[i], null, sb.toString().substring(0, 159),sentPI, null);
localSmsManager.sendTextMessage(setObj.GetContactListNumber()[i], null, sb.toString().substring(160),sentPI, null);
}
}
catch (SecurityException localSecurityException)
{
Log.e("Error", "Security Exception, SMS permission denied");
return;
}
}
}
else
{
Toast.makeText(hcontext,"please select a number",Toast.LENGTH_SHORT).show();
}
}
}
Any Help would be much appreciated , Thank you in advance!