¿Hay alguna manera de exigir que un método solo se llame desde la interfaz de usuario / hilo principal?

Eso sería muy mal diseño. Uno de los principios del buen diseño es que una función llamada nunca debe saber nada sobre la persona que llama. Esto le permite usar la función en cualquier lugar que desee y también evita tener efectos secundarios.

¿Qué está tratando de hacer aquí? ¿Por qué desea que este método se llame solo desde un hilo de fondo? ¿Es porque el método de ejecución de GetBitmapFromAssetAsync es lento? ¿No quieres bloquear el hilo de la interfaz de usuario?

Puede que tenga que pensar en cambiar la firma para que la persona que llama tenga que devolver la llamada. Las promesas son una buena abstracción para las cosas que llevan tiempo. Llama a un método y le devolverá una Promesa de inmediato en lugar de esperar a que finalice el procesamiento. La función se encarga de ejecutar la tarea real en segundo plano. La persona que llama puede proporcionar un método de devolución de llamada a la promesa, y se llamará al método de devolución de llamada cuando se complete el procesamiento. Como implementador de la función, usted decide cómo se ejecuta la tarea y cuándo se llama a la devolución de llamada en qué subproceso. Esto podría hacerse en un subproceso generado solo para esta tarea, o ejecutado por un grupo de subprocesos.

Creo que Java 8 proporciona promesas a través de algunas clases que extienden el futuro. No estoy en contacto con las últimas actualizaciones en Java. Es posible que desee ver la documentación

if (Looper.myLooper () == Looper.getMainLooper) {
lanzar una nueva MyException (“Mi mensaje de error”);
}

Esto debería funcionar.

No creo que haya ninguna anotación estándar para esto, pero si lo desea, siempre puede crear la suya.

More Interesting

Para que un desarrollador de Android desarrolle una aplicación React Native en iOS, ¿cuáles serán las diferencias clave?

Si tengo antecedentes de PHP, ¿está bien comenzar a escribir mi propia aplicación de Android y aprender sobre la marcha, o debería pasar unas semanas en Core Java?

¿Cuál es el buen lugar para el desarrollo de aplicaciones de Android o aplicaciones de comercio electrónico?

BBM para Android, ¿los usuarios de Android realmente necesitan BBM sobre Whatsapp?

¿Dónde puedo encontrar tutoriales para desarrollar una aplicación de Android usando Python como lenguaje en lugar de Java?

¿Cuál es una buena alternativa de Android a YouTube Capture?

Para el desarrollo de Android ahora estoy usando eclipse. Debido a la baja configuración de las respuestas del eclipse de la computadora portátil un poco lento, pero está bien. Estoy dispuesto a cambiar en el estudio de Android. ¿Funcionará bien en mi computadora portátil? (Estoy ejecutando Windows 7 como 8, 8.1, 10 muestra problemas)

¿Cuáles son algunas molestias de Android?

¿Cómo obtengo un JSONArray anidado en un Android?

Cómo entender el significado de extender e implementar en el desarrollo de Java / Android

¿Cuál es la mejor manera de comercializar y promocionar mi aplicación Android de finanzas con un presupuesto limitado?

Cómo construir una aplicación de mensajería paso a paso para Android

¿Cuáles son los trucos para crear una aplicación más rápido en Android?

¿Hay alguna posibilidad de volver a Android KitKat 4.4 desde Lollipop?

¿Es una buena idea continuar como desarrollador de Android con más de 4 años de experiencia en el desarrollo de Java y Android?