Если WebActivity
на самом деле является деятельностью (то есть расширяет Activity
), вы ошибаетесь в нескольких вещах.
Вы не должны создавать Activity
объекты самостоятельно. Ну, вы можете, но чем вы должны назначить им контекст (что, я не уверен, даже возможно без использования внутренних компонентов), и управлять жизненным циклом Activity.
Вы не можете просто создать объект Activity и вызвать функцию. Эта функция может иметь жизненный цикл и контекстные зависимости (т. Е. Вам может потребоваться «возобновить» действие).
Ошибка, которую вы видите, является результатом того, что каждый Activity
ожидает вызова из UI-потока (или, по крайней мере, из Looper
потока). Функция, которую вы вызываете больше всего, использует Handler
в некотором роде, прямо или косвенно. И когда эта функция создает Handler
, а затем отправляет сообщение или Runnable
, вы получите сообщение об ошибке.
Но опять же, это потому, что Activity
не предназначен для использования так, как вы использовали. Вы не можете просто создать действие и начать вызывать его метод. Вы в основном нарушаете его государственную модель. Так что Activity
даже не должен работать.
В качестве решения, если у вас есть контроль над WebActivity
, переместите функцию createExternalStoragePrivateFile()
в некоторый независимый класс или сделайте его статическим (если это возможно), или и тем, и другим. Скорее всего, вам нужно починить там одну или две вещи, чтобы она заработала. Но, по крайней мере, вы сможете вызывать функцию из других мест.