我有一个receiver类,它注册在我的mainactivity中,应该算解锁。
我的目标
我想让它工作,即使应用程序本身没有运行(接收器从来没有注销)。它应该在不启动/重新启动活动的情况下获取主活动的解锁量。
我的问题
我不知道怎么做。如你所见,我试着用 SharedPreferences
,但它没有工作,接收器工作良好,并得到广播,我只是不想它每次启动。
public class UnlockReceiver extends BroadcastReceiver {
private int count = 0;
private SharedPreferences preferences;
private SharedPreferences.Editor editor;
private static final String TAG = "UnlockReceiver";
@Override
public void onReceive(Context context, Intent intent) {
preferences = context.getSharedPreferences("label", 0);
count = preferences.getInt("tag", 0);
KeyguardManager keyguardManager = (KeyguardManager)context.getSystemService(Context.KEYGUARD_SERVICE);
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
if (!keyguardManager.inKeyguardRestrictedInputMode()) {
count++;
editor = preferences.edit();
editor.putInt("tag", count).commit();
Log.d(TAG, "unlock registered");
Intent i = new Intent(context, MainActivity.class);
i.putExtra("tag", count);
context.sendBroadcast(i);
}
} else {
if (!keyguardManager.isDeviceLocked()) {
count++;
editor = preferences.edit();
editor.putInt("tag", count).commit();
Log.d(TAG, "unlock registered");
Intent i = new Intent(context, MainActivity.class);
i.putExtra("tag", count);
context.sendBroadcast(i);
}
}
}
}
暂无答案!
目前还没有任何答案,快来回答吧!