If your goal is that you want NightClock
to be started whenever an ACTION_POWER_CONNECTED
broadcast is sent, your approach of using a BroadcastReceiver
is fine. However, do not register it from an activity. Rather, register it in the manifest:
<receiver android:name=".OnPowerReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_POWER_CONNECTED" />
</intent-filter>
</receiver>
Then, have your BroadcastReceiver
as a public Java class (here named OnPowerReceiver
, though you can call it whatever you want), and have it call startActivity()
.
Bear in mind that users probably do not want you doing this. There are many other cases for connecting a phone to power besides starting a “night clock”. I humbly suggest you simply let users start your activity via the home screen.