Android 通过广播监听home键和任务键
通过继承BroadcastReceiver来判断触发的按键,代码如下
public class MainActivity extends AppCompatActivity {private static final String TAG = "MainActivity";private MyBroadcastReceiver receiver;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);receiver = new MyBroadcastReceiver();IntentFilter filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);registerReceiver(receiver, filter);}@Overrideprotected void onDestroy() {super.onDestroy();unregisterReceiver(receiver);}class MyBroadcastReceiver extends BroadcastReceiver {private static final String KEY_HOME = "homekey";private static final String KEY_RECENT = "recentapps";@Overridepublic void onReceive(Context context, Intent intent) {if (intent != null) {String reason = intent.getStringExtra("reason");if (KEY_HOME.equals(reason)) {Log.i(TAG, "home键触发");}if (KEY_RECENT.equals(reason)) {Log.i(TAG, "任务键触发");}}}}
}
运行代码后,点击home和任务键,可以看到日志打印如下