繁体   English   中英

通过检测设备电源按钮在Android中按两次来打开应用

[英]Open app by detecting device power button press twice in android

我正在尝试构建一个可以通过按两次设备电源按钮来打开的应用程序。 我按照这个问题的答案来构建我的应用程序。 但是,当应用程序关闭时,后台服务无法正常工作。 尽管在应用程序运行时它似乎可以正常工作。 这是服务LockService.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.java的 BroadcastReceiver类

MainActivity.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));
}}

最后, AndroidManifest.xml文件在这里 我应该怎么做才能正常使用该应用程序?

当您的应用程序关闭时, LockService被销毁。 这就是为什么它不起作用。 您可以在主要活动的onDestroy方法中停止服务。 此外,在LockService onDestroy方法中,将意图发送到广播接收器,广播接收器将再次启动您的服务。 这样,无论何时关闭您的应用程序,广播接收器都会再次启动您的服务,然后将执行服务中的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM