Sometimes we have to move some of the implementation classes of the activity into Java classes, such as writing the following two classes:
In the Lifecircle class:
public class Lifecircle {public class Mybroadcast extends Broadcastreceiver {@Overridepublic void onreceive (Context conte XT, Intent Intent) {}}}
If you go to new in this activity:
public class Settings extends Activity {@Overrideprotected void onCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (r.layout.test_layout); Lifecircle lifecircle = new Lifecircle (this); Mybroadcast cast = new Mybroadcast ();}}
The compiler will report an error:
-No enclosing instance of type lifecircle is accessible. Must qualify the allocation with an enclosing instance of type lifecircle (e.g. X.new A () where X was an instance of Li fecircle).
One solution is to define Mybroadcast as the static class
To make a way to get:
Package Com.example.shoplistdownload;import Android.content.broadcastreceiver;import Android.content.Context; Import Android.content.intent;import Android.content.intentfilter;public class Lifecircle {Context mcontext;private Static lifecircle sinstance;private mybroadcast mbroadcast; Private Settings minstance; Lifecircle (Context context) {Mcontext = Context;minstance = (Settings) Context;} public static Lifecircle Getintance (context context) {if (sinstance = = null) {sinstance = new lifecircle (context);} return sinstance;} public class Mybroadcast extends Broadcastreceiver {@Overridepublic void OnReceive (context context, Intent Intent) {}}pub LIC void Registerbroadcaster () {mbroadcast = new mybroadcast (); intentfilter filter = new Intentfilter (); filter.addaction ("Com.example.action"); Minstance.registerreceiver (mbroadcast, filter);}}
public class Settings extends Activity {@Overrideprotected void onCreate (Bundle savedinstancestate) {super.oncreate ( Savedinstancestate); Setcontentview (r.layout.test_layout); Lifecircle lifecircle = new Lifecircle (this); Lifecircle.registerbroadcaster ();}}
Java solves the problem of No enclosing instance of type XXX is accessible