I am trying to autostart my nightclock application on charging using the following BroadcastReceiver implemented in the onPause() method:
BroadcastReceiver test = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { unregisterReceiver(this); Intent i = new Intent(context, NightClock.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } }; registerReceiver(test, new IntentFilter(Intent.ACTION_POWER_CONNECTED));
The onReceive() method is fired when the USB-cable is plugged in, but the activity doesn't start. However the log shows this:
I/ActivityManager( 79): Starting activity: Intent { flg=0x10000000 cmp=com.meins.nightclock/.NightClock }
Any ideas why the log says the activity is started, but nothing happens?
Intent intent = getIntent(); String message = intent. getStringExtra("message"); And then you will use message as you need. If you simply want the ReceiveText activity to show the message as a dialog, declare <activity android:theme="@android:style/Theme.
Starting activities or services. To start an activity, use the method startActivity(intent) . This method is defined on the Context object which Activity extends. The following code demonstrates how you can start another activity via an intent.
Retrieve the current result extra data, as set by the previous receiver. This can be called by an application in onReceive(Context, Intent) to allow it to keep the broadcast active after returning from that function.
Android BroadcastReceiver is a dormant component of android that listens to system-wide broadcast events or intents. When any of these events occur it brings the application into action by either creating a status bar notification or performing a task.
You have context passed as parameter to onRecieve() method, so just use:
@Override public void onReceive(Context context, Intent intent) { //start activity Intent i = new Intent(); i.setClassName("com.test", "com.test.MainActivity"); i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); }
It works, of course you have to change package and activity class name to your own.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With