一个简单的Android按键监听程序,通过通过BroadcastReceiver监听Home,电源Power,和音量变化Volume键
package com.spacesoftwares.spacecapture;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import com.spacesoftwares.spacecapture.service.WhiteService;
public class MainActivity extends AppCompatActivity {
private Button mBtnWhite, mBtnStopWhite, mBtnExit;
private final static String TAG = MainActivity.class.getSimpleName();
private Intent whiteIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mBtnWhite = findViewById(R.id.btn_white);
mBtnStopWhite = findViewById(R.id.btn_stop_white);
mBtnExit = findViewById(R.id.btn_exit);
setListener();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
class ExitReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
MainActivity.this.finish();
}
}
private void setListener(){
OnClick onClick = new OnClick();
mBtnWhite.setOnClickListener(onClick);
mBtnStopWhite.setOnClickListener(onClick);
mBtnExit.setOnClickListener(onClick);
}
private class OnClick implements View.OnClickListener{
@Override
public void onClick(View view) {
int viewId = view.getId();
switch(viewId){
case R.id.btn_white:
Log.i(TAG, "MAIN: btn_white");
if(null == whiteIntent)
whiteIntent = new Intent(MainActivity.this, WhiteService.class);
startService(whiteIntent);
break;
case R.id.btn_stop_white:
Log.i(TAG, "MAIN: btn_stop_white");
if(null != whiteIntent)
stopService(whiteIntent);
break;
case R.id.btn_exit:
Log.i(TAG, "MAIN: btn_exit");
if(null != whiteIntent)
stopService(whiteIntent);
finish();
break;
}
}
}
}
资源文件列表
.idea/caches/build_file_checksums.ser , 545
.idea/codeStyles/Project.xml , 1803
.idea/gradle.xml , 626
.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml , 541
.idea/libraries/Gradle__android_arch_core_runtime_1_1_1.xml , 655
.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml , 556
.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1.xml , 695
.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1.xml , 666
.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1.xml , 676
.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_alpha3.xml , 543
.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_alpha3.xml , 507
.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_alpha3.xml , 528
.idea/libraries/Gradle__com_android_support_collections_28_0_0_alpha3_jar.xml , 396
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_2.xml , 509
.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_2_jar.xml , 433
.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_alpha3.xml , 522
.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_alpha3.xml , 510
.idea/libraries/Gradle__com_android_support_customview_28_0_0_alpha3.xml , 501
.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_alpha3.xml , 507
.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_alpha3.xml , 507
.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_alpha3.xml , 507
.idea/libraries/Gradle__com_android_support_loader_28_0_0_alpha3.xml , 489
.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_alpha3.xml , 534
.idea/libraries/Gradle__com_android_support_print_28_0_0_alpha3.xml , 486
.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_alpha3.xml , 522
.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_alpha3_jar.xml , 420
.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_alpha3.xml , 513
.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_alpha3.xml , 516
.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_alpha3.xml , 525
.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_alpha3.xml , 519
.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_alpha3.xml , 540
.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_alpha3.xml , 525
.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2.xml , 718
.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2.xml , 773
.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2.xml , 670
.idea/libraries/Gradle__com_android_support_test_runner_1_0_2.xml , 665
.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_alpha3.xml , 528
.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_alpha3.xml , 498
.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml , 367
.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml , 546
.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml , 536
.idea/libraries/Gradle__junit_junit_4_12_jar.xml , 495
.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml , 518
.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml , 551
.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml , 586
.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml , 565
.idea/misc.xml , 1711
.idea/modules.xml , 361
.idea/runConfigurations.xml , 564
.idea/workspace.xml , 233483
app/.gitignore , 8
app/app.iml , 14528
app/build.gradle , 971
app/proguard-rules.pro , 772
app/src/androidTest/java/com/spacesoftwares/spacecapture/ExampleInstrumentedTest.java , 772
app/src/main/AndroidManifest.xml , 965
app/src/main/java/com/spacesoftwares/spacecapture/key/HomeKeyObserver.java , 2588
app/src/main/java/com/spacesoftwares/spacecapture/key/PowerKeyObserver.java , 2026
app/src/main/java/com/spacesoftwares/spacecapture/key/VolumeKeyObserver.java , 2203
app/src/main/java/com/spacesoftwares/spacecapture/MainActivity.java , 2471
app/src/main/java/com/spacesoftwares/spacecapture/service/WhiteService.java , 6134
app/src/main/res/drawable/ic_launcher_background.xml , 5776
app/src/main/res/drawable-v24/ic_launcher_foreground.xml , 1914
app/src/main/res/layout/activity_main.xml , 1148
app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml , 276
app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml , 276
app/src/main/res/mipmap-hdpi/ic_launcher.png , 3056
app/src/main/res/mipmap-hdpi/ic_launcher_round.png , 5024
app/src/main/res/mipmap-mdpi/ic_launcher.png , 2096
app/src/main/res/mipmap-mdpi/ic_launcher_round.png , 2858
app/src/main/res/mipmap-xhdpi/ic_launcher.png , 4569
app/src/main/res/mipmap-xhdpi/ic_launcher_round.png , 7098
app/src/main/res/mipmap-xxhdpi/ic_launcher.png , 6464
app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png , 10676
app/src/main/res/mipmap-xxxhdpi/ic_launcher.png , 9250
app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png , 15523
app/src/main/res/values/colors.xml , 214
app/src/main/res/values/dimen.xml , 254
app/src/main/res/values/strings.xml , 498
app/src/main/res/values/styles.xml , 399
app/src/test/java/com/spacesoftwares/spacecapture/ExampleUnitTest.java , 408
app/src/test/java/com/spacesoftwares/spacecapture/key/HomeKeyObserverTest.java , 124
gradle/wrapper/gradle-wrapper.jar , 54708
gradle/wrapper/gradle-wrapper.properties , 236
.gitignore , 147
build.gradle , 573
gradle.properties , 739
gradlew , 5296
gradlew.bat , 2260
local.properties , 373
settings.gradle , 16
SpaceCapture.iml , 866
.gradle/4.4/fileChanges/last-build.bin , 1
.gradle/4.4/fileContent/fileContent.lock , 17
.gradle/4.4/fileHashes/fileHashes.lock , 17
.gradle/4.4/fileHashes/resourceHashesCache.bin , 20673
.gradle/4.4/javaCompile/javaCompile.lock , 17
.gradle/4.4/javaCompile/taskJars.bin , 23646
.gradle/4.4/taskHistory/taskHistory.lock , 17
.gradle/buildOutputCleanup/buildOutputCleanup.lock , 17
.gradle/buildOutputCleanup/cache.properties , 51
