diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/MyException.java b/misc/src/main/java/com/example/snippets/backgroundwork/MyException.java new file mode 100644 index 00000000..04d08bfe --- /dev/null +++ b/misc/src/main/java/com/example/snippets/backgroundwork/MyException.java @@ -0,0 +1,13 @@ +package com.example.snippets.backgroundwork; + +/** + * Placeholder exception used by wake lock docs. + * + * Existing wake lock code snippets inclde a method that throws "MyException", I need to define + * it for the code snippets to use. + */ +public class MyException extends RuntimeException { + public MyException(String message) { + super(message); + } +} diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java new file mode 100644 index 00000000..f3a5e79b --- /dev/null +++ b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsJava.java @@ -0,0 +1,38 @@ +package com.example.snippets.backgroundwork; + +import android.app.Activity; +import android.os.Bundle; +import android.os.PowerManager; + +import androidx.annotation.Nullable; + +public class WakeLockSnippetsJava extends Activity { + + PowerManager.WakeLock wakeLock; + + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + + // [START android_backgroundwork_wakelock_create_java] + PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE); + PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag"); + wakeLock.acquire(); + // [END android_backgroundwork_wakelock_create_java] + + super.onCreate(savedInstanceState); + } + + // [START android_backgroundwork_wakelock_release_java] + void doSomethingAndRelease() throws MyException { + try { + wakeLock.acquire(); + doTheWork(); + } finally { + wakeLock.release(); + } + } + // [END android_backgroundwork_wakelock_release_java] + + private void doTheWork() { + } +} diff --git a/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt new file mode 100644 index 00000000..18ead161 --- /dev/null +++ b/misc/src/main/java/com/example/snippets/backgroundwork/WakeLockSnippetsKotlin.kt @@ -0,0 +1,57 @@ +/* + * Copyright 2025 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example.snippets.backgroundwork + +import android.app.Activity +import android.content.Context +import android.os.Bundle +import android.os.PowerManager + +// Snippets for doc page go here +class WakeLockSnippetsKotlin : Activity() { + + // [START android_backgroundwork_wakelock_create_kotlin] + val wakeLock: PowerManager.WakeLock = + (getSystemService(Context.POWER_SERVICE) as PowerManager).run { + newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyClassName::MyWakelockTag").apply { + acquire() + } + } + // [END android_backgroundwork_wakelock_create_kotlin] + + override fun onCreate(savedInstanceState: Bundle?) { + + super.onCreate(savedInstanceState) + } + + // [START android_backgroundwork_wakelock_release_kotlin] + @Throws(MyException::class) + fun doSomethingAndRelease() { + wakeLock.apply { + try { + acquire() + doTheWork() + } finally { + release() + } + } + } + // [END android_backgroundwork_wakelock_release_kotlin] + + private fun doTheWork() { + } +}