Я создаю API, который должен работать в потоке. Теперь я действительно не знаю, следует ли мне интегрировать/предоставить фоновое задание в моем API. Сделать это потокобезопасным не проблема.Должен ли я интегрировать фоновое задание в API?
Есть много возможностей делать потоки в Android (IntentServices, собственные решения Thread, AsyncTask и т. Д.). Теперь я чувствую, что если я интегрирую фоновое задание, скажем, AsyncTask, разработчик, который использует API, будет очень ограничен, чтобы использовать его. Потому что, учитывая f.e. изменения ориентации, разработчик должен иметь возможность реагировать на него должным образом. И это должен быть его выбор, как делать резьбу, чтобы он мог придерживаться своего дизайна.
Как я должен справиться с этим, чтобы обеспечить лучшую работоспособность? Предоставление задачи, которую можно использовать или игнорировать? Просто сделайте поток API безопасным и пусть разработчик реализует API в фоновой задаче по своему выбору?
Еще одна причина, по которой я спрашиваю, что большинство API в Android/Java не предоставляют фоновой задачи, но являются потокобезопасными.
Есть ли общее правило об этом?
Я с вами. Для обеспечения обратных вызовов и использования обработчиков для правильного взаимодействия это не проблема. Рассмотрим, что API включает Сервис. Затем он должен быть зарегистрирован в манифесте. Это то, чего я бы хотел избежать. Даже при изменении ориентации API должен уметь выжить в этом событии. IMO - это точки, которые лучше всего контролировать без интеграции фоновой задачи в API. –