gpt4 book ai didi

android - 如何减少 Activity 暂停和重新启动(通过服务)之间的时间延迟?

转载 作者:行者123 更新时间:2023-11-30 03:37:41 25 4
gpt4 key购买 nike

我正在实现一项始终位于最前面的 Activity (通常实现锁定屏幕),该算法很简单:

  1. 开始 Activity
  2. 禁用所有硬件按钮,禁用后按、相机锁、音量按钮等。
  3. 每当 Activity 暂停时调用服务来检查并重新启动 Activity。

逻辑引用这些答案:Answer 1 , Answer 2每当 Activity 暂停并由服务重新启动时,都会有 6-7 秒的延迟。我怎样才能减少我的 Activity 暂停和重新启动之间的时间延迟。

暂停和恢复代码:

protected void onPause() {
isFront = false;
Intent lockHelper = new Intent( this, LockHelper.class);
startService( lockHelper );
super.onPause();
}


@Override
public boolean onKeyDown(int keyCode, KeyEvent keyEvent) {
if(keyCode==KeyEvent.KEYCODE_CAMERA)
return true;
else if(keyCode==KeyEvent.KEYCODE_VOLUME_DOWN)
return true;
else if(keyCode==KeyEvent.KEYCODE_VOLUME_UP)
return true;
else if(keyCode==KeyEvent.KEYCODE_HOME)
return true;
else if(keyCode==KeyEvent.KEYCODE_POWER)
return true;
else
return true;
}

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent keyEvent) {
if(keyCode==KeyEvent.KEYCODE_HOME)
return true;
else if(keyCode==KeyEvent.KEYCODE_POWER)
return true;
else
return true;
}

@Override
public void onBackPressed() {
}

@Override
protected void onResume() {
isFront = true;
Intent lockHelper = new Intent( this, LockHelper.class);
startService( lockHelper );
super.onResume();
}

服务是:

public class LockHelper extends Service {
@Override
public void onStart(Intent intent, int startId) {
if(Locker.isFront == false){
Intent locker = new Intent( this, Locker.class);
locker.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity( locker );
stopSelf();
}
}

public LockHelper() {
}

@Override
public IBinder onBind(Intent intent) {
throw new UnsupportedOperationException("Not yet implemented");
}
}

最佳答案

onPause、onStop 和 onDestroy 中的代码应该尽可能快地执行。就是说,不要通过在这里放很多代码来阻塞这些方法。但同样,这取决于你在这里做什么。如果这些事情真的很重要,我不确定如何减少时间延迟。

关于android - 如何减少 Activity 暂停和重新启动(通过服务)之间的时间延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382076/

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