رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

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


پست های پیشنهاد شده

سلام

من یک برنامه نوشتم که پیام های دریافتی رو بخونه و اگر متن پیام همون چیزی بود که از قبل تایین کردم یک پیامی رو خودش به همون شماره بفرسته و این برنامه تا زمانه که تو خود صفحه 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]

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

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...