В настоящее время я разрабатываю службу печати для конкретного принтера.
Когда я нахожусь в предварительном просмотре документа, я могу выбрать принтер, поэтому в этом случае я отключаюсь от предварительно выбранного принтера (я использую здесь устройства BLE) и подключаюсь к новому.
Но я также могу нажать кнопку «Назад», чтобы отказаться от печати. И здесь возникает проблема, потому что, согласно моим исследованиям, у меня нет четкой информации об этом действии.
Хуже того, в этом случае вызываются одни и те же обратные вызовы, и если я нажимаю на печать!?!
Я хотел систематически отключаться от принтера, когда я выхожу из режима предварительного просмотра, а затем снова подключаться, когда вызывается onPrintJobQueued() для создания задания, но, к сожалению, у меня нет информации о выбранном принтере.
Поэтому я действительно не знаю, как это сделать, но мне нужно знать, подтверждаю ли я печать, чтобы в конечном итоге отключиться от текущего принтера, чтобы освободить его.
Любая идея?
Я думаю, что если соединение занимает много времени, ваша служба PrintService должна поддерживать соединение после того, как принтер не отслеживается onStopPrinterStateTracking, в случае, если пользователь просто переключает принтеры. Затем он должен освободить его в 'onDestroy' после проверки отсутствия очереди заданий для этого принтера, к тому времени вы должны уже получить onPrintJobQueued() (если есть) и будете знать, следует ли вам сохранить соединение или отказаться от него.
Да, вы правы, я не помню, какую ошибку совершил, когда впервые попытался отключиться от
onDestroy, но это работает. Спасибо.