Java 如果即使在满足条件的情况下仍不工作,则在内部编码
我是安卓应用开发新手。我正在开发一个应用程序,其中有一个receiver类。我厌倦了if语句。即使满足条件,它内部的代码也不会执行。以下是我的代码: MyReceiver.javaJava 如果即使在满足条件的情况下仍不工作,则在内部编码,java,android,Java,Android,我是安卓应用开发新手。我正在开发一个应用程序,其中有一个receiver类。我厌倦了if语句。即使满足条件,它内部的代码也不会执行。以下是我的代码: MyReceiver.java package eg.app7; import android.app.admin.DevicePolicyManager; import android.content.BroadcastReceiver; import android.content.Context; import android.conten
package eg.app7;
import android.app.admin.DevicePolicyManager;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
public static boolean screenOff;
DevicePolicyManager dpm;
SharedPrefs sharedPrefs;
public MyReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
//Toast.makeText(context,"Changed",Toast.LENGTH_SHORT).show();
System.out.println("onReceive ");
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
screenOff = true;
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {
screenOff = false;
}
// The below if statement is my problem
if(sharedPrefs.getBoolValue(context,"hhmmkey")) {
Intent i = new Intent(context, TimePinService.class);
context.startService(i);
}
}
}
请告诉我哪里错了您确定已将
操作屏幕关闭
和操作屏幕打开
添加到意向过滤器中吗
public void registerMyReceiver() {
MyReceiver myReceiver = new MyReceiver();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
intentFilter.addAction(Intent.ACTION_SCREEN_ON);
registerReceiver(myReceiver, intentFilter);
}
谢谢你们的建议,伙计们。但我找到了一个好办法。我将if块放在一个服务类中,然后由receiver类启动该服务。很好用 对不起,你收到了一些错误信息?如果你改变了上一次对上下文的承诺。startActivity(i)?哦,我现在明白了,这是一项服务…不,我没有收到任何错误消息。这应该是上下文;您的舒尔产品是否满足条件?在那里敬酒检查一下。我看不出
sharedPrefs
是从哪里发起的。它发起了吗?