通过继承BroadcastReceiver来判断触发的按键,代码如下
java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private MyBroadcastReceiver receiver;
@Override
protected 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);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(receiver);
}
class MyBroadcastReceiver extends BroadcastReceiver {
private static final String KEY_HOME = "homekey";
private static final String KEY_RECENT = "recentapps";
@Override
public 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和任务键,可以看到日志打印如下
