Kishan
Kishan

Reputation: 424

How do I start an Activity?

Suppose that, I have an android app that launches browser with some url supplied when it receives a message containing some prespecified data(some code or something)

For this to work, my class inherits broadcastReceiver class(to receive messages). Now as soon as it recieves a msg, it needs to launch another activity i.e browser and for this the same class needs to inherit Activity class also. But it is not possible, a class can not inherit 2 other classes.

My problem looks roughly like,

import android.content.broadCastReceiver;
import android.app.Activity;

public class sms extends broadCastReceiver{

 onReceive(){

  ....
  ....
  here it needs to launch another activity

  }
}

Could anyone suggest how I can implement this...? I tried creating an instance of Activity subclass inside and invoking startActivity method, but it did not work

Upvotes: 0

Views: 88

Answers (2)

Kishan
Kishan

Reputation: 424

Here i can launch a new activity using,

Intent i = new Intent(Context, MyNewActivity.class);
i.setFlags(Context.FLAG_ACTIVITY_NEW_TASK);
Context.startActivity(i);

here, context was passed to onReceive method of broadCastReceiver as a parameter, i can use that context itself. I can not use getBaseContext method here.

Upvotes: 0

ahodder
ahodder

Reputation: 11439

The method for starting an activity is aContext.startActivity(new Intent(aContext, MyNewActivity.class)); Be sure that you place the proper declarations in the manifest though.

Look here.

For clarification, you can start an activity using a context. So just keep a short term reference to one and you should be fine.

EDIT:

You need to have a reference of a usable context to even create an activity. Then you do the following (using the passed reference!)

Intent i = new Intent(passedContext, MyNewActivity.class);
i.setFlags(Context.FLAG_ACTIVITY_NEW_TASK);
passedContext.startActivity(i);

Upvotes: 3

Related Questions