其实有很多种方式,这里采用Service实现。
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent(this,HomeService.class);
startService(intent);
}
}
其实就是主角Service的实现:
public class HomeService extends Service{
private HomeReceiver homeReceiver;
private Intent newActivity;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
homeReceiver = new HomeReceiver();
IntentFilter homeFilter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
registerReceiver(homeReceiver, homeFilter);
}
/**
* 捕获home键
*/
public class HomeReceiver extends BroadcastReceiver{
final String SYSTEM_DIALOG_REASON_KEY = "reason";
final String SYSTEM_DIALOG_REASON_HOME_KEY = "homekey";
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null && reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
Toast.makeText(getApplicationContext(), "捕获到Home键", 0).show();
return;
}
}
}
}
@Override
public void onDestroy() {
unregisterReceiver(homeReceiver);
homeReceiver = null;
super.onDestroy();
}
}
希望有用,勿喷。