Yes, you can. Use a WeakReference to your activity.

static class MyHandler extends Handler {
private WeakReference<MyActivity> activityRef;
 public MyHandler(MyActivity activity) {
activityRef = new WeakReference<MyActivity>(activity);
}
 /**
 * @return The activity for which this MyHandler was created.
 * Returns null if this activity is no longer there (i.e. was garbage 
collected).
 */
MyActivity getActivity() {
return activityRef.get();
}
}

Then, you do simHandler= new MyHandler(this);
and when you need the activity:

MyActivity ac = simHandler.getActivity();
if  (ac != null) }
    ....
    ....
}


On Monday, February 4, 2013 12:29:53 PM UTC-5, dashman wrote:
>
>
> ok - i was able to get rid of the thread.
>
> in the handler - i conditionally call
>
> this.sendMessageDelayed( android.os.Message.obtain( this, 0, sim ), 1000 );
>
>
> next issue.
>
> i've got the handler defined in the activity class as
>
>     final android.os.Handler simHandler = new android.os.Handler() { ... };
>
> i get the following warning:
>
> This Handler class should be static or leaks might occur 
> (com.example.MyActivity.1) 
>
> If i make it static - i can't call an Activity instance method.
>
>
>
>
>
>
>
>
>
>
>
> why in a new Thread? 
>>
>> pskink
>>
>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to android-developers+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to