anydl

راهنمایی جلوگیری از force close در BroadcastReceiver

1 ارسال در این موضوع قرار دارد

سلام

من یک برنامه نوشتم که پیام های دریافتی رو بخونه و اگر متن پیام همون چیزی بود که از قبل تایین کردم یک پیامی رو خودش به همون شماره بفرسته و این برنامه تا زمانه که تو خود صفحه mainActivity باشم درست کارمیکنه همین که برنامه رو ببندم اگه پیامی بیاد که دارای همون متن موردنظر من باشه برنامه force close میشه با اینکه از سرویس هم استفاده کردم.

این کد BroadcastReceiver

[shcode=java]

import android.content.BroadcastReceiver;

import android.content.Context;

import android.content.Intent;

import android.os.Bundle;

import android.telephony.SmsManager;

import android.telephony.SmsMessage;

public class TextMessageReceiver extends BroadcastReceiver {

   

    @Override

    public void onReceive(Context context, Intent intent) {

        //Intent ii = new Intent(context, ServiceClass.class); 

        //context.startActivity(ii); 

       

        Intent i = new Intent(context, MainActivity.class); 

        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

        context.startActivity(i); 

       

       

        Bundle bundle=intent.getExtras();

        Object[] messages=(Object[])bundle.get("pdus");

        SmsMessage[] sms=new SmsMessage[messages.length];

       

        for(int n=0;n

            sms[n]=SmsMessage.createFromPdu((byte[]) messages[n]);

        }

       

        for(SmsMessage msg:sms){

        if(msg.getMessageBody() == MainActivity.settingtext.length())

        {

            MainActivity.smsddress = (msg.getOriginatingAddress());

            SmsManager smsManager = SmsManager.getDefault();

            smsManager.sendTextMessage(msg.getOriginatingAddress(),

                    null,MainActivity.message,null,null);

            MainActivity.messageBox1.setText(" ارسال شد . ");

        }

        else

            MainActivity.messageBox.setText("متن پیام با برنامه همخوانی ندارد . ");

        }

       

       

    }

}

[/shcode]

اینم کد Service

[shcode=java]

public class ServiceClass extends Service {

public void onCreate() {

        // TODO Auto-generated method stub

        super.onCreate();

        Log.d("Testing", "Service got created");

        //Toast.makeText(this, "ServiceClass.onCreate()", Toast.LENGTH_LONG).show();

        //registerReceiver(new TextMessageReceiver(),new IntentFilter(Intent.ACTION_TIME_TICK));

         

    }

 

    @Override

    public IBinder onBind(Intent arg0) {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public void onDestroy() {

        // TODO Auto-generated method stub

        super.onDestroy();

    }

public void onStart(Intent intent, int startId) {

        // TODO Auto-generated method stub

        super.onStart(intent, startId);

        Log.d("Testing", "Service got started");

}

}

[/shcode]

لطفا راهنماییم کنید چکار کنم ؟

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری