2017-12-13 12 views
0

アプリにログインしてから1時間後、セッションが終了する旨を警告するアラートを表示したい彼をログアウトさせる。ユーザーはアプリのあらゆる活動に参加している可能性があります。彼が現在取り組んでいる活動がなければ、このための最善のアプローチは何か問題である。警告を表示するアプリケーション内のどこからでも特定の時間が経過した後で特定の時間が経過した後にログアウトする

ログインした直後にcountDownTimerが設定され、これらのイベントを処理するためにonTickメソッドとonFinshメソッドを使用し、メッセージを表示するためにToastを使用します。私はこれがベストプラクティスだとは思わない。もっと良い解決策はありますか?

答えて

0

あなたは、これはユーザーのログインとしてサービスを開始し、指定した時間に到達するまで、その上のシステムトレイクリックで通知を示した上でカウンターを維持達成することができ、2つの方法がありますが開始されます保留中のインテントで、残りのログアウトロジックも実装できます。 here

通知についての詳細を読むか、特別な許可要求にフローティングウィンドウを作成することができ、ここで が通知

// Instantiate a Builder object. 
NotificationCompat.Builder builder = new NotificationCompat.Builder(this); 
// Creates an Intent for the Activity 
Intent notifyIntent = 
     new Intent(new ComponentName(this, ResultActivity.class)); 
// Sets the Activity to start in a new, empty task 
notifyIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
     Intent.FLAG_ACTIVITY_CLEAR_TASK); 
// Creates the PendingIntent 
PendingIntent pendingIntent = 
     PendingIntent.getActivity(
     this, 
     0, 
     notifyIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT 
); 

// Puts the PendingIntent into the notification builder 
builder.setContentIntent(pendingIntent); 
// Notifications are issued by sending them to the 
// NotificationManager system service. 
NotificationManager mNotificationManager = 
    (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
// Builds an anonymous Notification object from the builder, and 
// passes it to the NotificationManager 
mNotificationManager.notify(id, builder.build()); 

を作成する簡単な例です。システムから取得する必要がある場合は、フローティングウィンドウオーバーレイとも呼ばれる)を作成することができません。

Hereこのチュートリアルは完全なチュートリアルですが、この方法はお勧めできませんので、通知を受けることをお勧めします。

関連する問題