gpt4 book ai didi

java - 当设备处于锁定状态且屏幕处于关闭状态时,如何运行我的应用程序?

转载 作者:行者123 更新时间:2023-12-01 15:02:25 25 4
gpt4 key购买 nike

当手机锁定且屏幕关闭时,我使用警报服务来保持应用程序运行,但它不起作用。

我的警报服务类别是:

public class AlarmService extends BroadcastReceiver {

// Restart service every 60 seconds
private static final long REPEAT_TIME = 1000 * 60;

@Override
public void onReceive(Context context, Intent intent) {
AlarmManager service = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, StartUp_broadcast.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i,
PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
// Start 60 seconds after boot completed
cal.add(Calendar.SECOND, 60);
//
// Fetch every 60 seconds
// InexactRepeating allows Android to optimize the energy consumption
service.setRepeating (AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), REPEAT_TIME, pending);

// service.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),
// REPEAT_TIME, pending);

}
}

我的广播服务类别是:

public class StartUp_broadcast extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
Intent myIntent = new Intent(context, AlarmService.class);
PendingIntent pendingIntent = PendingIntent.
getService(context, 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 1000, 1000, pendingIntent);
Intent Startup_Intent = new Intent(context, LocationService.class);
Startup_Intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startService(Startup_Intent);
}

}

我的主要 Activity 类具有用于 WakeLock 的 PowerManager 服务

 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakeUp");
wl.acquire(1000); //wake up the screen
setContentView(R.layout.main);

this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

请帮助我。当手机锁定且 scrren 关闭时如何保持我的应用程序运行?

最佳答案

如果您想在屏幕锁定时运行应用程序并运行警报,那么您需要在启动时启动服务。也许这个链接对您有帮助。 http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/

首先阅读并一步一步地自己做。我希望它对你有帮助。

关于java - 当设备处于锁定状态且屏幕处于关闭状态时,如何运行我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13448250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com