I have a singleton class, and i want to pass a weak
reference of an activity to it.
The activity is implementing an interface, and all of the activities will be implementing this interface, so i want to pass interface type
to singleton class.
This is what i am doing.
Interface
public interface IAnalytics {
String getAnalyticViewName();
}
Singleton Class
public static AnalyticsWrapper getInstance(WeakReference<IAnalytics> iAnalytics) {
IAnalytics activityObject = iAnalytics.get();
activityName = activityObject.getAnalyticViewName();
}
MainActivity
public class MainActivity extends AppCompatActivity implements IAnalytics{
private WeakReference<MainActivity> weakReference;
protected void onCreate(Bundle savedInstanceState) {
AnalyticsWrapper analyticsWrapper= AnalyticsWrapper.getInstance(weakReference);
}
}
This issue is that when i am passing this
to AnalyticsWrapper
,it saying to change the getInstance()
type to weakReference<MainActivity>