public class SessionManager extends BroadcastReceiver{
Date timeOff;
Date timeOn;
@Override
public void onReceive(Context context, Intent intent) {
if("android.intent.action.SCREEN_OFF".equals(intent.getAction())) {
Log.i("MobileViaNetReceiver", "Screen off - start time to end session");
timeOff = Calendar.getInstance().getTime();
}
if("android.intent.action.ACTION_SHUTDOWN".equals(intent.getAction())) {
// DO WHATEVER YOU NEED TO DO HERE
Log.i("MobileViaNetReceiver", "Shut down - log off user");
DbAdapter_User db = new DbAdapter_User(context);
db.open();
db.handleLogout();
db.close();
}
if("android.intent.action.SCREEN_ON".equals(intent.getAction())) {
timeOn = Calendar.getInstance().getTime();
long diffInMs = timeOn.getTime()-timeOff.getTime();
// convert it to Minutes
long diffInMins = TimeUnit.MILLISECONDS.toMinutes(diffInMs);
if ((int) (diffInMins) > 15) {
//log out user
Log.i("MobileViaNetReceiver", "User inactive for 15 minutes - logout user");
DbAdapter_User db = new DbAdapter_User(context);
db.open(); // ******* HERE *************
db.handleLogout();
db.close();
} else {
Log.i("MobileViaNetReceiver", "User still active");
}
}
}
画面がオンになったら、ユーザーがscrrenを15分以上オフにしているかどうかを確認しています。そして、LonIn画面に移動します。 私はhandleLogoutは、()(HERE ** *をマーク)することを呼び出したときの意図を開始したい 私にできるクラスはBroadcastReceiverを拡張するときに?いいえ、他に何ができますか?Android BroadcastReceiverを起動してインテントを開始する
。 startActivity(i);それはあなたの質問に対処する修正された答え – user533844
メソッドを作成することを意味しているそれは働いた!ありがとう!!! –
startActivity(intent) – user533844