package tv.danmaku.android.util; import java.lang.ref.WeakReference; import android.app.Activity; import android.content.Intent; public class WeakActivity<T_Activity extends Activity> { private WeakReference<T_Activity> mWeakReference; public WeakActivity(T_Activity activity) { if (activity != null) { mWeakReference = new WeakReference<T_Activity>(activity); } } final public void setActivity(T_Activity activity) { if (activity == null) { mWeakReference = null; } else { mWeakReference = new WeakReference<T_Activity>(activity); } } final public T_Activity getActivity() { if (mWeakReference == null) return null; return mWeakReference.get(); } // methods for Activity final public void startActivity(Intent intent) { T_Activity activity = getActivity(); if (activity == null) return; activity.startActivity(intent); } final public void finish() { T_Activity activity = getActivity(); if (activity == null) return; activity.finish(); } }