当前位置: 首页 > 知识库问答 >
问题:

在android中,通过检测设备电源按钮按下两次打开应用程序

辛承
2023-03-14

我试图建立一个应用程序,也可以通过按下设备电源按钮两次打开。我已经按照这个问题的答案来构建我的应用程序。但是应用关闭时后台服务不工作。尽管它在应用程序运行时似乎工作正常。以下是服务LockS的代码ervice.java

public class LockService extends Service {
@Override
public IBinder onBind(Intent intent) {
    return null;
}

@Override
public void onCreate() {
    super.onCreate();
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    final IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
    filter.addAction(Intent.ACTION_SCREEN_OFF);
    filter.addAction(Intent.ACTION_USER_PRESENT);
    final BroadcastReceiver mReceiver = new ScreenReceiver();
    registerReceiver(mReceiver, filter);
    return super.onStartCommand(intent, flags, startId);
}

public class LocalBinder extends Binder {
    LockService getService() {
        return LockService.this;
    }
}}

应用程序ScreenReceiver的BroadcastReceiver类。JAVA

主要活动。JAVA

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    startService(new Intent(getApplicationContext(), LockService.class));
}}

最后是一份清单。xml文件在这里。我应该怎么做才能正常运行应用程序?

共有1个答案

壤驷阳波
2023-03-14

当应用程序关闭时,LockService将被销毁。这就是它不起作用的原因。您可以在主活动的ondestory方法中停止服务。此外,在LockServiceondestory方法中,向广播接收器发送意图,该接收器将再次启动您的服务。这样,每当您的应用程序关闭时,广播接收器将再次启动您的服务,然后将执行服务中的代码。

 类似资料:
  • 我正在制作一个android应用程序,它需要检测设备电源按钮按下两次/三次的事件 下面是我尝试过的代码,它不工作... 我的代码: 清单文件:

  • 我是Android新手。我正在尝试制作一个应用程序,它将在后台运行,并检测三次快速按下电源按钮。我查阅了很多资料,但无法澄清我的困惑。谁能给我一些建议吗?蒂亚。

  • 问题内容: 我在这方面是一个初学者,因此我正在努力使它起作用。 当按下按钮时,我只是希望拨号器以自动输入的指定号码打开。 到目前为止,我已经尝试了以下方法: 我也尝试过: 我已将权限ACTION_CALL添加到清单中。 每当我单击“呼叫”按钮时,应用程序强制关闭。 任何帮助将不胜感激。 谢谢! 问题答案: 您需要将此权限添加到清单中。

  • 问题内容: 你们可以帮我将以下代码翻译成Swift吗? (或者我是否必须使用此链接: _itms://itunes.apple.com/app/id839686104_ ?) 提前致谢! 问题答案: 这里。但我强烈建议您学习Swift的基础知识!

  • 我正在开发一个android应用程序,我需要代码来执行我的应用程序中的一些任务,当用户按下电源按钮五次时,无论是应用程序打开还是关闭。

  • 问题内容: 昨天我发布了一个问题,关于必须按下两次按钮才能使其正常工作。我得到了很好的帮助,这是stackoverflow的标志,但是问题仍然存在。我将代码缩减到最低限度,问题仍然存在。我仔细阅读了BalusC的建议,希望能在表单内找到表单。我当然看不到任何东西,所以我将发布我的代码,以希望更多的眼睛看到一些东西。 我有一个模板,可以从“欢迎”(登录部分)中调用。这将转到具有命令按钮的userIn