私はマルチプロファイルシナリオ用のAndroidアプリ開発について学習しており、数秒ごとにトーストメッセージを表示する簡単なサービスを作成しました。サービスはstartForeground
と呼ばれます。サービスからの任意のユーザープロフィールのトースト/通知を表示
期待どおり、トーストメッセージが表示され、通知バー(startForeground
が必要)が通知バーに表示されます。
更新:トーストが答えで推奨されたのと同じアプローチを、以下、ハンドラを使用して示されている:
Handler handler =new Handler();
handler.post(new Runnable() {
public void run() {
Toast.makeText(applicationContext, "hi", Toast.LENGTH_LONG).show()
}
})。別のユーザープロファイルにログオンするとき
は、しかし、:
- 通知は、もはや通知バーに存在しない、と
- 乾杯は表示されなくなりました。
私はプログラム的に試した:私はそれが出力ログ・メッセージ(
adb logcat
)に続けて、サービスがまだ実行されている、とトーストが失敗している表示するには、このコールを示すことになるエラー・メッセージがないことを知っている
新しいユーザープロファイルにログオンした後にサービスを停止して再起動しますが、運がない場合があります。新しいユーザープロファイルでアプリケーションを手動で再起動すると、トーストと通知はと表示されます。
これはシステムアプリケーションではないため、システムアプリに許可されている許可は受け入れられません。
サービスは、現在のユーザープロファイルに関係なく、サービスからのトーストメッセージを表示できますか?
あなたは__Handler__または__Broadcastを使用する必要がありますReceiver__を使用してUIを更新します。 – Piyush
ありがとう@Piyush Gupta。私はHandlerを使用しています(それを反映するために質問を更新しました)。これが最初のユーザープロファイルからトーストを表示する方法でした。それは正常に動作しますが、2番目のプロファイルに切り替えると、トーストは表示されなくなります。 –