Android :: How Can I Pass A Context Object To A Thread On Call?
May 12, 2010I have this code fragment: Code...
View 3 RepliesI have this code fragment: Code...
View 3 RepliesI'm confused about the concept of the Context class. I see that it's a base class of Activity, but the Android docs also mentions the Context storing global information about the app environment. So in my app which has 3 activities, does that mean I have 3 distinct Context objects, or do they actually refer to 1 entity? Also, what is the lifetime of a Context object- does it live until the last component of this activity's process is garbage collected?
View 1 Replies View RelatedI'm not sure if this is an Android question or just due to my being new to Java as well. I'd like to use the getString method to get strings from my resources (R.string.whatever). I see that this is a method of the Context class, and I can call it directly from within my main Activity class. But I also have some utility classes in their own class files and can't simply call this method from them. What seems to be required is for me to pass the context (the Activity object) into these other classes via their constructors. Then I can call the method e.g., mCtx.getString(). I guess my main question is whether there's another way to get the Context without having to pass it from class to class as an argument.
View 9 Replies View RelatedI often run into the following dilemma: I need some singleton-like object in my app (typically some central manager-like thing) and this object needs a context for various things. This means that I either have to pass a context to all methods needing one or have some sort of init-pattern to the object. Neither is pretty I think. What is the correct way of doing this? Or is this simply (even the definition of) a Service?
View 15 Replies View RelatedWhat is the lifetime of an app's global android.content.Context object? Does it last until the last component of the app is terminated by the Android runtime?
View 2 Replies View RelatedI'm using a timer which needs context..
Now i have the following code ...
Is this safe to use , or may i be leaking the context here?
btw. this is in a broadcastreceiver.
I have an activity which implements an OnItemClickListener.code...
However, I need to pass some objects from MyActivity1 to MyActivity2 --
I see there is an Intent.putExtra() for all the basic types, and I even see a Bundle which is a collection of basic types, but how can I pass a generic "Object" to MyActivity2 ?
Is it possible to pass an object to the intent so i can access that object in my new activity?
View 2 Replies View RelatedThere is an activity which has an object. This activity(say A) starts another activity(say B). Can B use some object in A?
View 7 Replies View RelatedI have two class, class A and B, B include class A, like this..
View 2 Replies View RelatedThis is a followup to this post: http://stackoverflow.com/questions/3897176/findviewbyid-in-a-subclassed-surfaceview-throwing-runtimeexception Based on Romain Guy's feedback (which I'll accept shortly as it is a solution), I'd like to obtain the calling Activity from within the View, so that I can use it to obtain the desired Text View resource. I don't see any methods in View that return Activity. What is the proper way to do this? Or is there a better alternative for working with TextViews from within another View context. Basically, I am calling setContentView(R.layout.xxx) in onCreate() (as usual), so I don't really have a way to pass in references to additional TextViews unless I awkwardly retrieve the View after setContentView and then make calls on it.
View 1 Replies View RelatedIs is bad practice to pass the Context to a constructor and save it as a private variable for internal use? The other option is to pass the Context as a parameter to methods that need it.
Which is the better option?
I have a feeling that passing to the constructor might result in memory leaks accidentally.
I have an Object that I need to be able to pass between Activites. It implements Parcelable and I've written all the code related to that. The problem is that one of the properties of the Object is a Drawable - and really needs to be. Unfortunately, Drawable is neither Parcelable or Serializable. I don't understand how to pass it. The reason for having the Drawable is that I need to cache an Image that I've downloaded from the internet at runtime. I don't want to cache the images on the filesystem, since this would potentially end up using up a lot of space over time. I'm putting the image into a Drawable so that I can easily put it into an ImageView.
View 2 Replies View RelatedIn my activity , I create a Bitmap object, and I need to launch another activity,
How can I pass this Bitmap object from the sub-activity (the one which is going to be launched)?
I have read posts on passing arrays from and to activities, but I am confused as to how I would do it for my specific case.
I have an array of objects called DaysWeather (a DaysWeather[] array) where the objects have several String attributes as well as a bitmap attribute. I read somewhere that you have to make it serializable or parceable or something, but it seems messy at first glance.
Could someone lead me in the right direction?
Is there a simple way to do this?
Is it possible to pass a JavaScript object from JavaScript to Java using addJavascriptInterface()? Something along these lines: var javaScriptObject = {"field1":"string1", "field2":"string2"}; JavaScriptInterface.passObject(javaScriptObject); How would such a call be captured on the Java side? I have no problem setting up the interface to send a string, but when I send an object, I receive null on the Java end.
View 2 Replies View RelatedCan I pass a singleton class's object from one activity to another activity using intent? I am using singleton class as image class img = image class.get Instance();, so i need the img instance for another activity, how can i pass an object instance in Android.
View 2 Replies View RelatedI am developing an app that connects to a server. For that connection I created a class Client that maintains info about the connection . My app consists of several Activities and each of that Activity needs access to the Client object to communicate to the server. 1) Can I put somewhere the Client object so that all Acitvities have an access to it? 2) If not I would probably need to pass the object to each Activity via Intent.putExtra(). But putExtra doesn't accept Object as an argument. It only accepts several types like int, long, String etc. So how can I pass an object to another Activity?
View 2 Replies View RelatedI want to show messageBox or notification when connection lost in Static DB class but i cant use getApplicationContext() because its a static class and i tried to call other class called notification but i have error so how i could pass activity object to my new class .
View 3 Replies View RelatedI have a class A which is responsible for fetching data from web services in android and i have a class B which is responsible for creating and rendering List View in android
Now how can i populate data on List View once the data is fetched successfully.
well i have following options but which one is better .. (if someone has anyother then i don't mind)
1) Create an intent of Class B and
pass the data that need to be
populated
2) Creating a static method int Class
B which will accept the data as an
argument and call setListAdapter
in class B i have used Holder Patter to create ListActivity. ( for reference List14.java in samples of Android )
I'm working on an application that requires non-serializable objects to be passed between Activities. The following page suggests using a HashMap of WeakReferences to accomplish this:
http://developer.android.com/guide/appendix/faq/framework.html
Is this solution safe? I know Activities are completely destroyed and recreated when the screen orientation changes. Couldn't those weakly referenced objects get GCed in the split second when the screen is rotated, since they wouldn't be referenced elsewhere at that point?
In my Android application, I have to call the getSharedPreferences in non-activity classes. In order to avoid passing a Context object to each constructor of these classes (and because many of them are classes with only static methods which don't have a constructor), I have implemented these steps : The main activity of my application (which is launched at startup) is called Dispatcher. In the onCreate method of this class, I keep a reference to the created Dispatcher object in a static public variable of the Dispatcher class which can be accessed from any class in the project.
View 2 Replies View RelatedI'm building an android application, which has a list view, and in the list view, a click listener, containing an onItemClick method. So I have something like this:
public class myList extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
getListView().setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
/* Do something*/
}
}
}
Normally, this works fine. However, many times I find myself needing too preform an application using the outer class as a context. thusfar, I've used: parent.getContext(); to do this, but I would like to know, is that a bad idea? I can't really call: because it's not really a subclass, just an embedded one. So is there any better way, or is that considered cosure? Also, if it is the right way, what should I do if the embedded method doesn't have a parameter to get the outside class?
I define a class Rect and a aidl file as below. code...
View 2 Replies View RelatedI am want to pass data back from a Thread to Activity (which created the thread). So I am doing like described on Android documentation.Only one thing I am missing here - where and how should be defined mResults so I could access it from both Activity and Thread, and also would be able to modify as needed? If I define it as final in MyActivity, I can't change it anymore in Thread - as it is shown in example.
View 1 Replies View RelatedMy app forwards MotionEvents, reported by GestureDetector.OnGestureListener, to a worker thread. Right now i am doing it by calling MotionEvent.obtain, pass the obtained copy to the worker thread, handle it and recycle it at the worker thread. Is it required to obtain and recycle a MotionEvent if it is passed to another thread? Or could it safely be skiped? If i am making things overly complicated, could you please explain me at which conditions MotionEvent.obtain is usually called?
View 2 Replies View RelatedMy purpose is very simple : each 1second, I want to redraw an object on different place on background. I do not know where my error on this code below. Here is my code:
public class My_View extends View{ private Bitmap mBackground_img;
private Drawable mMoveObject; private int mObjectw,mObjecth; private int Dx,Dy;
private Handler myHandler = new Handler(); private long lasttime;
public My_View(Context context,AttributeSet ats,int ds) {
super(context,ats,ds); init(context);
} public My_View(Context context,AttributeSet ats) { super(context,ats);
init(context); } public My_View(Context context) { super(context);
init(context); } public void change() { invalidate();
} private void init(Context context) {
Resources res = context.getResources();
mMoveObject = res.getDrawable (R.drawable.lander_firing);
mBackground_img = BitmapFactory.decodeResource(res, R.drawable.my_pic);
mObjectw = mMoveObject.getIntrinsicWidth();
mObjecth = mMoveObject.getIntrinsicHeight();
Dx = Dy = 0; lasttime = System.currentTimeMillis() + 1000;
Thread mthread = new Thread(null,doBackground,"Background");
mthread.start(); } private Runnable doBackground = new Runnable() {
public void run() { long now = System.currentTimeMillis();
if(lasttime < now ) { Dx = Dx + 10; Dy = Dy + 10;
lasttime = now + 1000; myHandler.post(change_view);
} } }; private Runnable change_view = new Runnable() {
public void run() { change();
} };
@Override public void onDraw(Canvas canvas) {
canvas.drawBitmap(mBackground_img,0 ,0 , null);
mMoveObject.setBounds(Dx, Dy, Dx+mObjectw, Dy+mObjecth);
mMoveObject.draw(canvas);
} }
In the code showed as below I create a process dialog for doing some long
operation (in this case waiting 4 seconds). It runs as it should. And shows the "Starting" and "Done" message but when it finishes and I click Button1 again it terminates.
public class main extends Activity { public ProgressDialog dialog = null;
final Handler handler = new Handler(){ public void handleMessage(Message msg){
dialog.dismiss(); TextView tv2 = (TextView) findViewById(R.id.TextView02);
tv2.setText("Done"); } };
Thread runlongjob = new Thread(){ public void run(){
SystemClock.sleep(4000); handler.sendEmptyMessage(0);
} };
/** Called when the activity is first created. */
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main);
} public void clickhandler(View v){ switch(v.getId()){
case (R.id.Button01): TextView tv1 = (TextView) findViewById(R.id.TextView01);
tv1.setText("Starting...");
dialog = ProgressDialog.show(main.this, "Please wait", "Doing Job...",
true); runlongjob.start(); break; } }
I have a main class which has edittext box. And i have another class in the same source folder. Now i want to use the text typed in main class accessible to the another class.
View 1 Replies View RelatedHere is what the SDK doc says about the bindService():
"Clients can also use Context.bindService() to obtain a persistent connection to a service. This likewise creates the service if it is not already running (calling onCreate() while doing so), but does not call onStartCommand()."
This means that the Service creation lifecyle events are different depending on whether or not the service is created out of startService() or bindService(). Why such difference?