2017-10-06 99 views
1

我想,以防止用戶關閉我的應用程序時,它是「記錄」的活動(此活動是遠足,騎自行車(防止用戶關閉它) ,運行等)。鎖定最近的應用程序屏幕上的應用程序時,某些功能正在運行

如果我開始錄製然後轉到另一個應用程序,然後點擊手機上的「最近的應用程序」按鈕,然後點擊「關閉所有」或將我的應用程序從屏幕上滑開,它會破壞它並且錄製內容會丟失。

我顯然不希望以防止關閉這一切的時候,只有當他們開始錄製的用戶,然後讓他們再次關閉時,他們已經停止。

我知道這種行爲是可以做到完全像我想是因爲RD客戶端我用我的Android設備不正是這...這不會讓我關閉它,而我連接到遠程機器,但那麼一旦斷開連接,我的確可以關閉它。

我已經搜查高和低,只能發現在關閉時如何編程從最近的應用程序列表中刪除一個應用程序的信息。

任何建議將不勝感激。

+0

而不是阻止你的應用程序在錄製時關閉,你可以設置當調用onStop時,將記錄保存在數據庫中(sqlite或realm),然後關閉應用程序。這樣,當用戶重新打開應用程序時,可以從數據庫中檢索記錄。 – chornge

+0

我已經將它保存到數據庫中。我試圖解決的問題會發生在用戶最小化應用程序或打開另一個應用程序,然後通過轉到最近的應用程序並關閉所有或關閉應用程序而無意中關閉了我的應用程序。我總是習慣於這種習慣。我希望它繼續記錄活動,直到他們主動決定停止錄製(通過點擊應用程序中的按鈕) –

+0

我已經添加了答案,我希望你找到它有用 – chornge

回答

0

你要尋找的是Screen Pinning。它在Android API 21+中可用,它可以讓你臨時限制用戶離開任務或被通知中斷。它包含一種名爲startLockTask的方法。該documentation爲startLockTask說:

...把​​這個活動在用戶被鎖定於當前任務的模式。這將阻止用戶啓動其他應用程序,進入設置或到達主屏幕。


當任務鎖定處於活動狀態,以下行爲發生:

  • 狀態欄是空白的,和用戶通知和狀態信息被隱藏。
  • 隱藏Home和Recent Apps按鈕。
  • 其他應用程序無法啓動新活動。
  • 當前的應用程序可以開始新的活動,只要這樣做不會創建新的任務。
  • 當設備所有者調用屏幕鎖定時,用戶會一直鎖定到您的應用程序,直到應用程序調用stopLockTask()。
  • 如果固定屏幕是由另一個應用程序,不是器件擁有者,或者直接由用戶活動時,用戶可以通過握住背部和最近的按鈕退出。

用戶將無法退出此模式,直到stopLockTask()被稱爲 - 這是完美的,因爲你只希望他們能時,他們已經停止錄製退出。

+0

這不是我正在尋找的東西。我希望用戶在錄製過程中能夠在手機上做其他事情(例如,查看短信或在Chrome瀏覽器上查看內容),但我不想讓他們在完成此操作後關閉我的應用。正如我在OP中所說的,這種確切的行爲存在於其他應用程序中。 –

+0

你是什麼意思的「錄音」,它是錄製的視頻或音頻?或者,它是加速度計/運動/傳感器數據的記錄嗎? – chornge

+0

在這種情況下,「錄音」是我自己的應用程序的行爲。它使用位置服務來跟蹤用戶的移動,在谷歌地圖上創建折線,將位置更改保存到數據庫中....因此,從這個意義上來說,「錄製」是我自己的命名法,用於我的應用程序的用途:錄製活動以供日後審閱或上傳到雲端等。 –

相關問題