Android 何时何地注销宽频广播接收器?
我有如下代码所示的Android 何时何地注销宽频广播接收器?,android,broadcastreceiver,android-broadcast,android-broadcastreceiver,Android,Broadcastreceiver,Android Broadcast,Android Broadcastreceiver,我有如下代码所示的aAsyncTask,它的任务是启用蓝牙适配器。在onPreExecute中,我注册了操作action\u STATE\u CHANGED,以获得有关蓝牙适配器电源状态的通知(打开、关闭、打开、关闭)。此接收器在onPreexecute中注销,以便在异步任务完成时注销接收器“并在on cancelled中注销”,这样,如果按下“后退”按钮,任务将被取消,接收器应被删除 未注册” 但是,当任务正在运行且我按下后退按钮取消正在运行的任务时,我收到以下logcat错误,尽管接收器已在
aAsyncTask
,它的任务是启用蓝牙适配器。在onPreExecute中,我注册了操作action\u STATE\u CHANGED
,以获得有关蓝牙适配器电源状态的通知(打开、关闭、打开、关闭)。此接收器在onPreexecute
中注销,以便在异步任务完成时注销接收器“并在on cancelled中注销”,这样,如果按下“后退”按钮,任务将被取消,接收器应被删除
未注册”
但是,当任务正在运行且我按下后退按钮取消正在运行的任务时,我收到以下logcat错误,尽管接收器已在onCancelled
中注销
为什么会发生这种情况以及如何解决
代码:
@Override
protected void onDestroy() {
super.onDestroy();
Log.w(TAG, "onDestroy");
if (this.mATEnableBT != null && this.mATEnableBT.getStatus() != AsyncTask.Status.FINISHED) {
this.mATEnableBT.cancel(true);
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.w(TAG, "onBackPressed");
finish();
}
..
..
..
private BroadcastReceiver mBCR_POWER_STATE_CHANGED = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.w(TAG, SubTag.msg("mBCR_STATE_CHANGED"));
final int prevPowState = intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_STATE, BluetoothAdapter.ERROR);
switch (prevPowState) {
case BluetoothAdapter.STATE_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_ON"));
break;
case BluetoothAdapter.STATE_TURNING_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_TURNING_ON"));
break;
case BluetoothAdapter.STATE_TURNING_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_TURNING_OFF"));
break;
case BluetoothAdapter.STATE_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_OFF"));
break;
case BluetoothAdapter.ERROR:
Log.e(TAG, SubTag.msg("mBCR_STATE_CHANGED", "NO_PREVIOUS_POWER_STATE"));
break;
}
final int currPowState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
switch (currPowState) {
case BluetoothAdapter.STATE_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "currPowState: STATE_ON"));
break;
case BluetoothAdapter.STATE_TURNING_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "currPowState: STATE_TURNING_ON"));
break;
case BluetoothAdapter.STATE_TURNING_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED: currPowState: STATE_TURNING_OFF"));
break;
case BluetoothAdapter.STATE_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED: currPowState: STATE_OFF"));
break;
case BluetoothAdapter.ERROR:
Log.e(TAG, SubTag.msg("mBCR_STATE_CHANGED", "NO_CURRENT_POWER_STATE"));
break;
}
if ((prevPowState == BluetoothAdapter.STATE_TURNING_ON) && (currPowState == BluetoothAdapter.STATE_ON)) {
Log.i(TAG, SubTag.msg("mBCR_STATE_CHANGED: BT-Power ON"));
}
if ((prevPowState == BluetoothAdapter.STATE_TURNING_OFF) && (currPowState == BluetoothAdapter.STATE_OFF)) {
Log.i(TAG, SubTag.msg("mBCR_STATE_CHANGED: BT-Power OFF"));
finish();
}
}
};
private class ATEnableBT extends AsyncTask<Void,Void,Void> {
private int mWaitTime = getApplicationContext().getResources().getInteger(R.integer.int_max_wait_time);
private int mSleepTime = getApplicationContext().getResources().getInteger(R.integer.int_sleep_time);
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.w(TAG, "onPreExecute");
registerReceiver(mBCR_POWER_STATE_CHANGED, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
}
@Override
protected Void doInBackground(Void... params) {
Log.w(TAG, "doInBackground");
mBTAdapter.enable();
while(!isCancelled() && mBTAdapter.getState() != BluetoothAdapter.STATE_ON && this.mWaitTime > 0) {
SystemClock.sleep(2000);
this.mWaitTime -= this.mSleepTime;
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Log.w(TAG, "onPostExecute");
unregisterReceiver(mBCR_POWER_STATE_CHANGED);
}
@Override
protected void onCancelled(Void aVoid) {
super.onCancelled(aVoid);
Log.w(TAG, "onCancelled");
unregisterReceiver(mBCR_POWER_STATE_CHANGED);
}
}
异步任务:
@Override
protected void onDestroy() {
super.onDestroy();
Log.w(TAG, "onDestroy");
if (this.mATEnableBT != null && this.mATEnableBT.getStatus() != AsyncTask.Status.FINISHED) {
this.mATEnableBT.cancel(true);
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
Log.w(TAG, "onBackPressed");
finish();
}
..
..
..
private BroadcastReceiver mBCR_POWER_STATE_CHANGED = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.w(TAG, SubTag.msg("mBCR_STATE_CHANGED"));
final int prevPowState = intent.getIntExtra(BluetoothAdapter.EXTRA_PREVIOUS_STATE, BluetoothAdapter.ERROR);
switch (prevPowState) {
case BluetoothAdapter.STATE_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_ON"));
break;
case BluetoothAdapter.STATE_TURNING_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_TURNING_ON"));
break;
case BluetoothAdapter.STATE_TURNING_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_TURNING_OFF"));
break;
case BluetoothAdapter.STATE_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "prevPowState: STATE_OFF"));
break;
case BluetoothAdapter.ERROR:
Log.e(TAG, SubTag.msg("mBCR_STATE_CHANGED", "NO_PREVIOUS_POWER_STATE"));
break;
}
final int currPowState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
switch (currPowState) {
case BluetoothAdapter.STATE_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "currPowState: STATE_ON"));
break;
case BluetoothAdapter.STATE_TURNING_ON:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED", "currPowState: STATE_TURNING_ON"));
break;
case BluetoothAdapter.STATE_TURNING_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED: currPowState: STATE_TURNING_OFF"));
break;
case BluetoothAdapter.STATE_OFF:
Log.v(TAG, SubTag.msg("mBCR_STATE_CHANGED: currPowState: STATE_OFF"));
break;
case BluetoothAdapter.ERROR:
Log.e(TAG, SubTag.msg("mBCR_STATE_CHANGED", "NO_CURRENT_POWER_STATE"));
break;
}
if ((prevPowState == BluetoothAdapter.STATE_TURNING_ON) && (currPowState == BluetoothAdapter.STATE_ON)) {
Log.i(TAG, SubTag.msg("mBCR_STATE_CHANGED: BT-Power ON"));
}
if ((prevPowState == BluetoothAdapter.STATE_TURNING_OFF) && (currPowState == BluetoothAdapter.STATE_OFF)) {
Log.i(TAG, SubTag.msg("mBCR_STATE_CHANGED: BT-Power OFF"));
finish();
}
}
};
private class ATEnableBT extends AsyncTask<Void,Void,Void> {
private int mWaitTime = getApplicationContext().getResources().getInteger(R.integer.int_max_wait_time);
private int mSleepTime = getApplicationContext().getResources().getInteger(R.integer.int_sleep_time);
@Override
protected void onPreExecute() {
super.onPreExecute();
Log.w(TAG, "onPreExecute");
registerReceiver(mBCR_POWER_STATE_CHANGED, new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED));
}
@Override
protected Void doInBackground(Void... params) {
Log.w(TAG, "doInBackground");
mBTAdapter.enable();
while(!isCancelled() && mBTAdapter.getState() != BluetoothAdapter.STATE_ON && this.mWaitTime > 0) {
SystemClock.sleep(2000);
this.mWaitTime -= this.mSleepTime;
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
Log.w(TAG, "onPostExecute");
unregisterReceiver(mBCR_POWER_STATE_CHANGED);
}
@Override
protected void onCancelled(Void aVoid) {
super.onCancelled(aVoid);
Log.w(TAG, "onCancelled");
unregisterReceiver(mBCR_POWER_STATE_CHANGED);
}
}
私有类ATEnableBT扩展异步任务{
private int mWaitTime=getApplicationContext().getResources().getInteger(R.integer.int\u max\u wait\u time);
private int mSleepTime=getApplicationContext().getResources().getInteger(R.integer.int\u sleep\u time);
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
Log.w(标记“onPreExecute”);
registerReceiver(mBCR\u电源\u状态更改,新的IntentFilter(BluetoothAdapter.ACTION\u状态更改));
}
@凌驾
受保护的Void doInBackground(Void…参数){
Log.w(标签“doInBackground”);
mBTAdapter.enable();
而(!isCancelled()&&mBTAdapter.getState()!=BluetoothAdapter.STATE_ON&&this.mWaitTime>0){
SystemClock.sleep(2000年);
this.mWaitTime-=this.mSleepTime;
}
返回null;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
Log.w(标记“onPostExecute”);
未注册接收器(mBCR\u电源\u状态\u更改);
}
@凌驾
取消后受保护的作废(作废避免){
超级。一旦取消(避免);
Log.w(标记为“已取消”);
未注册接收器(mBCR\u电源\u状态\u更改);
}
}
logcat
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: Activity com.example.com.onprepareoptionsmenu_01.MainActivity has leaked IntentReceiver com.example.com.onprepareoptionsmenu_01.MainActivity$1@3f2f9d that was originally registered here. Are you missing a call to unregisterReceiver()?
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: android.app.IntentReceiverLeaked: Activity com.example.com.onprepareoptionsmenu_01.MainActivity has leaked IntentReceiver com.example.com.onprepareoptionsmenu_01.MainActivity$1@3f2f9d that was originally registered here. Are you missing a call to unregisterReceiver()?
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:960)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:761)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:2002)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.ContextImpl.registerReceiver(ContextImpl.java:1982)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.ContextImpl.registerReceiver(ContextImpl.java:1976)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:503)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at com.example.com.onprepareoptionsmenu_01.MainActivity$ATEnableBT.onPreExecute(MainActivity.java:36)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.os.AsyncTask.execute(AsyncTask.java:535)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at com.example.com.onprepareoptionsmenu_01.MainActivity.onOptionsItemSelected(MainActivity.java:108)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.Activity.onMenuItemSelected(Activity.java:3024)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:325)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:147)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.app.AppCompatDelegateImplV7.onMenuItemSelected(AppCompatDelegateImplV7.java:609)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:958)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:948)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:619)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.view.View.performClick(View.java:5184)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.view.View$PerformClick.run(View.java:20893)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.os.Handler.handleCallback(Handler.java:739)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.os.Handler.dispatchMessage(Handler.java:95)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.os.Looper.loop(Looper.java:145)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at android.app.ActivityThread.main(ActivityThread.java:5938)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at java.lang.reflect.Method.invoke(Native Method)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at java.lang.reflect.Method.invoke(Method.java:372)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
02-13 11:45:46.158 25978-25978/com.example.com.bt_11 W/MainActivity: onCancelled
02-13 11:45:46.168 25978-25978/com.example.com.bt_11 D/AndroidRuntime: Shutting down VM
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: FATAL EXCEPTION: main
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: Process: com.example.com.bt_11, PID: 25978
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: java.lang.IllegalArgumentException: Receiver not registered: com.example.com.onprepareoptionsmenu_01.MainActivity$1@3f2f9d
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.app.LoadedApk.forgetReceiverDispatcher(LoadedApk.java:822)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.app.ContextImpl.unregisterReceiver(ContextImpl.java:2025)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.content.ContextWrapper.unregisterReceiver(ContextWrapper.java:528)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at com.example.com.onprepareoptionsmenu_01.MainActivity$ATEnableBT.onCancelled(MainActivity.java:65)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at com.example.com.onprepareoptionsmenu_01.MainActivity$ATEnableBT.onCancelled(MainActivity.java:26)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:630)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.os.AsyncTask.access$600(AsyncTask.java:177)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.os.Looper.loop(Looper.java:145)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5938)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at java.lang.reflect.Method.invoke(Method.java:372)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1400)
02-13 11:45:46.178 25978-25978/com.example.com.bt_11 E/AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1195)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:Activity com.example.com.onprepareoptionsmenu_01.main活动已泄漏IntentReceiver com.example.com.onprepareoptionsmenu_01.main活动$1@3f2f9d原来是在这里注册的。是否缺少对unregisterReceiver()的调用?
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:android.app.IntentReceiver泄漏:Activity com.example.com.onprepareoptionsmenu_01.main活动已泄漏IntentReceiver.example.com.onprepareoptionsmenu_01.main活动$1@3f2f9d原来是在这里注册的。是否缺少对unregisterReceiver()的调用?
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:在android.app.LoadedApk$ReceiverDispatcher。(LoadedApk.java:960)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.app.LoadedApk.getReceiveDispatcher(LoadedApk.java:761)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:2002)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at-android.app.ContextImpl.registerReceiver(ContextImpl.java:1982)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at-android.app.ContextImpl.registerReceiver(ContextImpl.java:1976)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:503)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at com.example.com.onprepareoptionsmenu_01.MainActivity$ATEnableBT.onPreExecute(MainActivity.java:36)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.os.AsyncTask.execute(AsyncTask.java:535)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at com.example.com.onPrepareOptions菜单_01.MainActivity.onOptionItemSelected(MainActivity.java:108)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.app.Activity.onMenuItemSelected(Activity.java:3024)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at-android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:325)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:147)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:100)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.support.v7.app.AppCompateDelegateImplv7.onMenuItemSelected(AppCompateDelegateImplv7.java:609)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:811)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at-android.support.v7.internal.view.menu.menuitemmpl.invoke(menuitemmpl.java:153)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:位于android.support.v7.internal.view.menu.MenuBuilder.performitemation(MenuBuilder.java:958)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.support.v7.internal.view.menu.MenuBuilder.performitemation(MenuBuilder.java:948)
02-13 11:45:44.948 25978-25978/com.example.com.bt_11 E/ActivityThread:at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:619)
02-13 11:45:44.948