Cómo fijar la aplicación no responde?
He preparado la aplicación de pintura, mi aplicación contiene una vista personalizada para paint.when dibujamos cualquier cosa en la vista personalizada sólo recoger los píxeles dibujados y almacenar en la lista de array, primero está funcionando bien (pero está tomando mucho tiempo) y la segunda vez " Actividad MyAlphabets (en aplicación MyAlphabets) no responde (fuerza cierre y espera) ".
Mi código es,
- Llamado al método onDraw () de una vista personalizada en Android
- Dos barras de acción (abajo y arriba) al mismo tiempo?
- Android - Personalización del widget Spinner Look and Feel
- ¿Debo llamar a super () o llamar a esto () para los constructores de vista personalizada de Android?
- Restaurar estado de vista antes de aplicar atributos XML
public void onDraw(Canvas canvas) { if (myDrawBitmap == null) { myDrawBitmap = Bitmap.createBitmap(canvas.getWidth(), canvas.getHeight(), Bitmap.Config.ARGB_8888); bmpDrawCanvas = new Canvas(myDrawBitmap); intDrawArray = new int[myDrawBitmap.getWidth() * myDrawBitmap.getHeight()]; } if (bmpDrawCanvas != null) { for (Path path : MyActivity.mArryLstPath) { bmpDrawCanvas.drawPath(MyActivity.mPath, mPaintAlphabet); } myDrawBitmap.getPixels(intDrawArray, 0, 220, 0, 0, 220, 305); for (int i = 0; i < intDrawArray.length; i ++) { if (intDrawArray[i] == 0xFFFFFFFF) { if (MyActivity.mArryLstDrawnPixels.contains(i)) { } else { MyActivity.mArryLstDrawnPixels.add(i); } } }
Cuando hacemos clic en "cerrar la fuerza" Logcat es,
INFO/ActivityManager(52): Killing process com.qteq.myapplication (pid=225) at user's request INFO/Process(52): Sending signal. PID: 225 SIG: 9 INFO/ActivityManager(52): Process com.qteq.myapplication (pid 225) has died. INFO/WindowManager(52): WIN DEATH: Window{608fbd10 com.qtq.myapplication/com.qtq.myapplication.MyApplicationActivity paused=false} INFO/UsageStats(52): Unexpected resume of com.android.launcher while already resumed in com.qtq.myapplication ERROR/gralloc(52): [unregister] handle 0x4a2740 still locked (state=40000001) WARN/InputManagerService(52): Got RemoteException sending setActive(false) notification to pid 225 uid 10025
Esta es la forma correcta de recoger los píxeles de color en el momento de draw.Please me ayudan ..
Cómo resolver este problema. por favor, ayúdame..
- Lazy carga de GridView con imágenes de descarga de Internet
- Error al inflar la clase de botón personalizado. NoSuchMethodException
- Vista personalizada que no da margen
- Cómo usar una misma fontface personalizada para toda la vista en android?
- Disposición de la vista Lista de Android Similar a Google play
- Editado: Android Dibuja la imagen de la aguja en este círculo similar al medidor
- Usabilidad de BoringLayout
- No se encontró ningún identificador de recurso para el atributo '' in package 'com.app ...'
Su aplicación está obligada a obtener "aplicación no responde" errores ya que está haciendo todo su cálculo, incluida la asignación en el hilo de la interfaz de usuario ( onDraw
).
En primer lugar, debe intentar mover los cálculos en un hilo no-ui (consulte AsyncTask ). Cualquier operación que esté tomando más de 20ms está llamada a invocar el mensaje "Application Not responding".
En segundo lugar, usted debe tratar de refactorizar su código de tal manera que no tiene que realizar el cálculo cada vez que tiene que dibujar. Básicamente, hacer que su imagen es un mapa de bits fuera de la pantalla, la caché y hacerla desde la copia en caché en onDraw
. El alcance de "cómo", me temo, está más allá del alcance de esta discusión.
- Detectar el inicio de un sonido o una voz en Android
- Eclipse Indigo no puede importar maven android que genere OK en la línea de comandos