简体   繁体   English

谁能告诉我为什么我在logcat中收到此错误?

[英]Can anyone tell me why do I get this error in logcat?

I'm a Newbie in Android.Please tell me what does the following log cat error mean and how do I get rid of it? 我是Android的新手,请告诉我以下log cat错误是什么意思,如何消除它? In my app what I'm doing is blocking unwanted calls.When I'm pressing backbutton while using my app, I'm getting this error. 在我的应用程序中,我正在阻止不必要的呼叫。当我在使用我的应用程序时按下后退按钮时,出现此错误。 Please help 请帮忙

05-18 16:58:32.614: E/ActivityThread(3265): Activity com.deepthi.blockmycalls.BlockMyCallsActivity has leaked IntentReceiver com.deepthi.blockmycalls.BlockMyCallsActivity$1@44f03d18 that was originally registered here. Are you missing a call to unregisterReceiver()?
05-18 16:58:32.614: E/ActivityThread(3265): android.app.IntentReceiverLeaked: Activity com.deepthi.blockmycalls.BlockMyCallsActivity has leaked IntentReceiver com.deepthi.blockmycalls.BlockMyCallsActivity$1@44f03d18 that was originally registered here. Are you missing a call to unregisterReceiver()?
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ActivityThread$PackageInfo$ReceiverDispatcher.<init>(ActivityThread.java:939)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ActivityThread$PackageInfo.getReceiverDispatcher(ActivityThread.java:734)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:791)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ContextImpl.registerReceiver(ContextImpl.java:778)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ContextImpl.registerReceiver(ContextImpl.java:772)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:318)
05-18 16:58:32.614: E/ActivityThread(3265):     at com.deepthi.blockmycalls.BlockMyCallsActivity.onCheckedChanged(BlockMyCallsActivity.java:155)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.widget.CompoundButton.setChecked(CompoundButton.java:124)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.widget.CompoundButton.toggle(CompoundButton.java:86)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.widget.CompoundButton.performClick(CompoundButton.java:98)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.view.View$PerformClick.run(View.java:8816)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.os.Handler.handleCallback(Handler.java:587)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.os.Looper.loop(Looper.java:123)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-18 16:58:32.614: E/ActivityThread(3265):     at java.lang.reflect.Method.invokeNative(Native Method)
05-18 16:58:32.614: E/ActivityThread(3265):     at java.lang.reflect.Method.invoke(Method.java:521)
05-18 16:58:32.614: E/ActivityThread(3265):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-18 16:58:32.614: E/ActivityThread(3265):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-18 16:58:32.614: E/ActivityThread(3265):     at dalvik.system.NativeStart.main(Native Method)
05-18 16:58:32.614: E/ActivityThread(3265): Activity com.deepthi.blockmycalls.BlockMyCallsActivity has leaked IntentReceiver com.deepthi.blockmycalls.BlockMyCallsActivity$1@44efa3a8 that was originally registered here. Are you missing a call to unregisterReceiver()?
05-18 16:58:32.614: E/ActivityThread(3265): android.app.IntentReceiverLeaked: Activity com.deepthi.blockmycalls.BlockMyCallsActivity has leaked IntentReceiver com.deepthi.blockmycalls.BlockMyCallsActivity$1@44efa3a8 that was originally registered here. Are you missing a call to unregisterReceiver()?
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ActivityThread$PackageInfo$ReceiverDispatcher.<init>(ActivityThread.java:939)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ActivityThread$PackageInfo.getReceiverDispatcher(ActivityThread.java:734)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:791)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ContextImpl.registerReceiver(ContextImpl.java:778)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ContextImpl.registerReceiver(ContextImpl.java:772)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:318)
05-18 16:58:32.614: E/ActivityThread(3265):     at com.deepthi.blockmycalls.BlockMyCallsActivity.onCheckedChanged(BlockMyCallsActivity.java:155)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.widget.CompoundButton.setChecked(CompoundButton.java:124)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.widget.CompoundButton.toggle(CompoundButton.java:86)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.widget.CompoundButton.performClick(CompoundButton.java:98)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.view.View$PerformClick.run(View.java:8816)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.os.Handler.handleCallback(Handler.java:587)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.os.Handler.dispatchMessage(Handler.java:92)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.os.Looper.loop(Looper.java:123)
05-18 16:58:32.614: E/ActivityThread(3265):     at android.app.ActivityThread.main(ActivityThread.java:4627)
05-18 16:58:32.614: E/ActivityThread(3265):     at java.lang.reflect.Method.invokeNative(Native Method)
05-18 16:58:32.614: E/ActivityThread(3265):     at java.lang.reflect.Method.invoke(Method.java:521)
05-18 16:58:32.614: E/ActivityThread(3265):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-18 16:58:32.614: E/ActivityThread(3265):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-18 16:58:32.614: E/ActivityThread(3265):     at dalvik.system.NativeStart.main(Native Method)
05-18 16:59:55.812: D/dalvikvm(3265): GC_EXPLICIT freed 4770 objects / 267120 bytes in 592ms

My Code: 我的代码:

  @Override
    public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
        // TODO Auto-generated method stub

         CallBlocker =new BroadcastReceiver()
         {
           @Override
            public void onReceive(Context context, Intent intent) {

                Bundle extra=intent.getExtras();//new
                telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
                if(extra!=null)//new=== getting the blocked number
                {
                     state=extra.getString(telephonyManager.EXTRA_STATE);

                    if(state.equals(telephonyManager.EXTRA_STATE_RINGING))
                    {
                        number=extra.getString(telephonyManager.EXTRA_INCOMING_NUMBER);
                        Log.w("NUMBER",number);
                    }
                }
                Class c = null;
                try {
                        c = Class.forName(telephonyManager.getClass().getName());
                } catch (ClassNotFoundException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
               Method m = null;
                try {
                        m = c.getDeclaredMethod("getITelephony");
                } catch (SecurityException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                } catch (NoSuchMethodException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
        m.setAccessible(true);
        try {
            telephonyService = (ITelephony)m.invoke(telephonyManager);
        } catch (IllegalArgumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        telephonyManager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
        }//onReceive()

         class MyPhoneStateListener extends PhoneStateListener
            {
                public void onCallStateChanged(int state, String incomingNumber)
                {

                    switch (state)
                    {
                        case TelephonyManager.CALL_STATE_RINGING:
                           if (true) // if incomingNumber need to be blocked
                           {
                               if(Enable_chkbox.isChecked())
                               {
                                try {
                                 end_call=telephonyService.endCall();
                                 if(end_call==true)
                                 {                          
                                     android.telephony.SmsManager sms = android.telephony.SmsManager.getDefault();
                                     sms.sendTextMessage(number, null, SMS, null, null);
                                 }
                                 Toast.makeText(getApplicationContext(),"Enabled", Toast.LENGTH_LONG).show();
                                } catch (Exception e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                                   }//try catch
                             }//if chkbox enabled
                           }
                           break;
                        default:
                           break;
                     }
                  }
                }

            };//Broadcast receiver
            IntentFilter filter= new IntentFilter("android.intent.action.PHONE_STATE");
            registerReceiver(CallBlocker, filter);

    }

Unregistering in: 取消注册:

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    unregisterReceiver(CallBlocker);
    this.finish();
        Toast.makeText(getApplicationContext(), "text", Toast.LENGTH_LONG).show();
        }

Everything is working fine unless I press the back button.. 除非我按返回按钮,否则一切都正常。

You didn't show your code so this is a guess. 您没有显示代码,所以这是一个猜测。

The clue is here: 线索在这里:

05-18 16:58:32.614: E/ActivityThread(3265): Activity com.deepthi.blockmycalls.BlockMyCallsActivity has leaked IntentReceiver com.deepthi.blockmycalls.BlockMyCallsActivity$1@44efa3a8 that was originally registered here. 05-18 16:58:32.614:E / ActivityThread(3265):活动com.deepthi.blockmycalls.BlockMyCallsActivity泄漏了最初在此处注册的IntentReceiver com.deepthi.blockmycalls.BlockMyCallsActivity$1@44efa3a8。 Are you missing a call to unregisterReceiver()? 您是否缺少对unregisterReceiver()的调用?

Are you unregistering your receiver when your activity finishes? 活动结束后,您要注销接收器吗?

@Override
protected void onPause(){

    super.onPause();

    if (myMessageReceiver != null){
        unregisterReceiver(myMessageReceiver );
        myMessageReceiver = null;
    }
}

是的,您拥有不释放/取消注册的资源,需要更多代码才能具体说明

如果您可以发布代码,也许会更容易为您提供帮助,但似乎您正在两次注册接收者。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 任何人都可以告诉我为什么发生以下错误-方向错误 - Can Anyone tell me why the following error occurs - wrong orientation 谁能告诉我如何启动mp3? - can anyone tell me how do I start mp3? 谁能告诉我为什么这个where子句没有给我结果? - Can anyone tell me why this where clause is not giving me the result? 我无法在数组列表中绑定联系人,有人可以告诉我我做错了什么吗? - I cannot bind the contacts in my arraylist can anyone tell me what i do wrong?ANDROID 谁能告诉我为什么此文本不在Android Studio中居中? - Can Anyone Tell Me Why This Text Is Not Centering In Android Studio? 谁能告诉我为什么单击按钮后什么都没有发生? - Can anyone tell me why nothing is happen on the click of button? 谁能告诉我为什么所有Rect都会触发相同的活动 - Can Anyone Tell me Why All Rects fires to same Activity 有人能告诉我为什么会出现 OpenGL 堆栈下溢吗? - Can someone tell me why I get an OpenGL stack underflow? 谁能告诉我在这种情况下我哪里错了? - Can anyone tell me where i am wrong in this condition? 谁能告诉我有关Android的InternalStorage的信息? 我很困惑 - Can anyone tell me about InternalStorage in Android ? I am confused
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM