0

私の目標:中にユーザーの操作を強制するonStop

例:を開始しintentActivityユーザーがhomeボタンを押すかonStop呼び出されたときに起動します。

これは良い方法ではないことは承知していますが、ユーザーがボタンでアプリを離れようとした場合は、ユーザーの操作を強制する必要がありhomeます。

この目標を達成する方法について他にアイデアがある場合は、お知らせください。

ありがとう

4

1 に答える 1

0

これを確実に行うことはできません (マルウェアのような動作であるため)。ユーザーはいつでも最近のアプリ メニューからアプリを強制終了できます。

アプリをランチャーにすることもできます。ユーザーがそれを我慢して、ホームに着くたびにアプリが起動されるようにすることはできますが、誰かがアプリを離れるのを (確実に) 防ぐ方法はありません。Services の起動am start(root が必要な場合とそうでない場合があります)を含め、多くのハッキングが可能ですが、これも完全に回避可能です。

ユーザーがあなたを十分に信頼している場合 (そのように聞こえれば、選択の余地はありません)、SYSTEM_ALERT_DIALOG許可を要求できます。これにより、ウィンドウを他のアプリケーションの上に配置できます。したがって、パズルのピースは次のようになります -

  1. ユーザーがアプリ内にいるかどうかを追跡するサービス
  2. onStart/onStopメソッドが呼び出されたときにサービスに通知するアクティビティ。が呼び出されたときonStopにタイマーを開始し (たとえばpostDelayed、ハンドラーで使用して)、onStartが呼び出されたときにタイマーをキャンセルします。
  3. タイマーが作動した場合はonStop、アプリにとどまらずに取得したことを意味します。次に、適切なフラグを持つウィンドウを表示できます (この部分は、WindowManager直接対話する必要があるため、少し低レベルです。 のソース コードDialogはここの良い例です)。ユーザーが現在表示しています。

または、ダイアログの重要性に応じて、ダイアログを押すと、ダイアログでアクティビティを起動する通知として表示することを検討してください。もちろん、ユーザーが通知を却下するリスクがあります (ただし、それを回避するために通知を継続することはできます)。

于 2013-07-30T21:28:52.180 に答える