Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Toast崩溃应用程序_Android - Fatal编程技术网

Android Toast崩溃应用程序

Android Toast崩溃应用程序,android,Android,在我的应用程序中,我实现了按硬件音量键显示当前音量的祝酒词。大多数时候一切都很顺利。然而,长时间按音量键确实会使我的应用程序崩溃。崩溃时生成的日志如下所示: .... 11-19 06:43:22.114 I/NotificationService( 2783): enqueueToast pkg=com.FunTime.android callback=android.app.ITransientNotification$Stub$Proxy@47b679a8 duration=0 11-19

在我的应用程序中,我实现了按硬件音量键显示当前音量的祝酒词。大多数时候一切都很顺利。然而,长时间按音量键确实会使我的应用程序崩溃。崩溃时生成的日志如下所示:

....
11-19 06:43:22.114 I/NotificationService( 2783): enqueueToast pkg=com.FunTime.android callback=android.app.ITransientNotification$Stub$Proxy@47b679a8 duration=0
11-19 06:43:22.119 V/WindowManager( 2783): Delivering key 25 to Window{47f6a930 com.FunTime.android/com.FunTime.android.map.MapActivity paused=false}
11-19 06:43:22.164 I/NotificationService( 2783): enqueueToast pkg=com.FunTime.android callback=android.app.ITransientNotification$Stub$Proxy@47a980b0 duration=0
11-19 06:43:22.169 V/WindowManager( 2783): Delivering key 25 to Window{47f6a930 com.FunTime.android/com.FunTime.android.map.MapActivity paused=false}
11-19 06:43:22.209 I/NotificationService( 2783): enqueueToast pkg=com.FunTime.android callback=android.app.ITransientNotification$Stub$Proxy@47b4d270 duration=0

...many such notifications...

11-19 06:43:22.244 E/SurfaceFlinger( 2783): createSurface() failed, generateId = -12
11-19 06:43:22.244 W/WindowManager( 2783): OutOfResourcesException creating surface
11-19 06:43:22.244 I/WindowManager( 2783): Out of memory for surface! Looking for leaks...
11-19 06:43:22.244 W/WindowManager( 2783): No leaked surfaces; killing applicatons!
11-19 06:43:22.244 W/ActivityManager( 2783): Killing processes for memory at adjustment 0
11-19 06:43:22.244 W/ActivityManager( 2783): Killing for memory: ProcessRecord{47dd75c8 3246:com.FunTime.android/10079} (adj 0)
11-19 06:43:22.244 I/Process ( 2783): Sending signal. PID: 3246 SIG: 9
11-19 06:43:22.244 W/WindowManager( 2783): Looks like we have reclaimed some memory, clearing surface for retry.
11-19 06:43:22.244 W/WindowManager( 2783): Due to memory failure, waiting a bit for next layout
我采用的方法是: 我有一个toast对象,对于检测到的每个按键事件,我都会膨胀一个视图,在其中设置视图元素,将其设置为toast,然后显示toast

知道出了什么问题吗

编辑

在“我的所有活动”从中继承的基本活动类中:

public boolean onKeyDown(int keyCode, KeyEvent event)
 {
     if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN)
     {
        myAudioManager.getInstance().onVolumeDown();
               myAudioManager.getInstance().showVolumeAdjustment(myAudioManager.getInstance().getVolume());
        return true;
     }
     else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP)
     {
        myAudioManager.getInstance().onVolumeUp();
          myAudioManager.getInstance().showVolumeAdjustment(myAudioManager.getInstance().getVolume());
       return true;
      }
    return super.onKeyDown(keyCode, event);
}
在myAudioManager中

 public void showVolumeAdjustment(final int adjustment)
 {
         volumeToast.setDuration(Toast.LENGTH_SHORT);
         volumeToast.setView(getVolumeProgressBarView(adjustment));
         volumeToast.setGravity(Gravity.TOP,0,0);
         volumeToast.show();
 }

 private View getVolumeProgressBarView(int adjustment)
 {
         LayoutInflater inflater = (LayoutInflater) myApplication.getInstance().getApplicationContext()
                                       .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
         toastView= inflater.inflate(R.layout.volume_toast, null);
         ProgressBar pb =(ProgressBar)toastView.findViewById(R.id.level);
         pb.setMax(MAX_VOICE_VOLUME_ENGINE);
         pb.setProgress(adjustment);
         return toastView;
 }

你做了太多的祝酒,填满了记忆


尝试设置计时器或其他限制生成的烤面包次数的方法。

您应该发布代码,说明如何设置按键事件处理程序以及如何显示烤面包。如果不知道你到底做了什么,很难说出你做错了什么。