幸福なプログラマ

プログラマは幸福になれる。

ユーザ切り替えインテントを取得する

Android 5.0(lollipop)からマルチユーザに対応しました。(タブレットは4.2から)
ユーザ切り替えが発生した際のインテントの取得したい場合、以下のように記述します。

class UserSwitchReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // ユーザ切り替え時の処理
    }
}

/**
 * ユーザ切り替え時のレシーバ登録
 */
void registerReceiver() {
    IntentFilter intentFilter = new IntentFilter();
    // ユーザがバックグラウンドになった際のインテント登録
    intentFilter.addAction(Intent.ACTION_USER_BACKGROUND);
    // ユーザがフォアグラウンドになった際のインテント登録
    intentFilter.addAction(Intent.ACTION_USER_FOREGROUND);

    registerReceiver(new UserSwitchReceiver(), intentFilter);
}   

ユーザが切り替わった際にActivityを止めたい時なんかは、上記UserSwitchReceiveronReceivefinish()すればいいはず。