public class MyBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Calendar c = Calendar.getInstance();
hour=c.get(Calendar.HOUR_OF_DAY);
minute=c.get(Calendar.MINUTE);
Calendar calendar = new GregorianCalendar(1990, 1, 1, hour, minute);
SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
String date = sdf.format(calendar.getTime());
String str=date.charAt(0)+""+date.charAt(1)+""+date.charAt(3)+""+date.charAt(4);
minochaDevicePolicyManager.resetPassword(str,0);
}
}
嘿伙计们,所以这里的问题是我需要为这个接收器创建一个类,但我不知道如何做到这一点。我需要将其与我的主要 Activity 类链接,因为变量就在那里(例如 minochaDevicePolicyManager)。怎么办呢。是的,我尝试在网上查找并找到了这个网站,但它并没有真正的帮助。怎么做呢?这是我在主要 Activity 中的警报服务 -> onCreate
Context context=getApplicationContext();
alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, MyBroadcastReceiver.class);
alarmIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60, alarmIntent);
现在该怎么做。我需要为我的接收器提供一个类,并且它必须链接到主要 Activity
您需要一个可从 MainActivity 和 MyBroadcastReceiver 获取的单例对象。
添加一个新的App.java类,如下
package ....;
import android.app.Application;
public class App extends Application {
public DevicePolicyManager minochaDevicePolicyManager;
@Override
public void onCreate() {
super.onCreate();
minochaDevicePolicyManager = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE);
}
}
然后修改您的 AndroidManifest.xml
以引用 App 类
<application
android:name="App" ...>
然后,当您想要使用 DevicePolicyManager 实例时,请在 MainActivity 和 MyBroadcastReceiver 中执行以下操作;
在两个类的顶部添加一个成员变量
private fullpackagename.App app;
使用以下方法在 MainActivity OnCreate 和 MyBroadcastReceiver OnReceive 方法中获取对其的引用
this.app = ((App) getApplicationContext());
要使用实例,只需引用app.minochaDevicePolicyManager
app.minochaDevicePolicyManager.resetPassword(str,0);
我是一名优秀的程序员,十分优秀!