android - Get Context from a non activity class -
is possible context non activity class? without making method in activity class activity?
maybe new thread or starting new invisible activity show toast , go activity before.
my idea write package methods show messages via toast or alert. have import package , can show toast example.
edit: maybe should use package app uses service in background , if close app app runs on in background , crashes when call toast. error nullpointer exception, alert if closed app , service restarting in background.
edit: code: method service. services classname , starting automatically if close app service starting again.
@override public int onstartcommand(intent intent, int flags, int startid) { mt(services.this,"service starting"); a.ma(myactivity.getact(),"title", "message", r.drawable.ninja, new dialoginterface.onclicklistener() { public void onclick(dialoginterface dialog, int which) { mt(services.this, "clicked"); } } ); message msg = mservicehandler.obtainmessage(); msg.arg1 = startid; mservicehandler.sendmessage(msg); // if killed, after returning here, restart return start_sticky; } and alert , toast displayed starting service, not if close app , service starting again in background. funny thing toast displayed if delete alert not alert. error message is:
08-19 18:37:30.479 4591-4591/productions.ingos.gpstracker e/androidruntime﹕ fatal exception: main java.lang.runtimeexception: unable start service productions.ingos.gpstracker.services@417322e8 null: java.lang.nullpointerexception @ android.app.activitythread.handleserviceargs(activitythread.java:2553) @ android.app.activitythread.access$2000(activitythread.java:134) @ android.app.activitythread$h.handlemessage(activitythread.java:1321) @ android.os.handler.dispatchmessage(handler.java:99) @ android.os.looper.loop(looper.java:137) @ android.app.activitythread.main(activitythread.java:4867) @ java.lang.reflect.method.invokenative(native method) @ java.lang.reflect.method.invoke(method.java:511) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1007) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:774) @ dalvik.system.nativestart.main(native method) caused by: java.lang.nullpointerexception @ android.app.alertdialog.resolvedialogtheme(alertdialog.java:142) @ android.app.alertdialog$builder.<init>(alertdialog.java:359) @ ingos.productions.dp.ma(dp.java:29) @ productions.ingos.gpstracker.services.onstartcommand(services.java:117) @ android.app.activitythread.handleserviceargs(activitythread.java:2536) at android.app.activitythread.access$2000(activitythread.java:134) at android.app.activitythread$h.handlemessage(activitythread.java:1321) at android.os.handler.dispatchmessage(handler.java:99) at android.os.looper.loop(looper.java:137) at android.app.activitythread.main(activitythread.java:4867) at java.lang.reflect.method.invokenative(native method) at java.lang.reflect.method.invoke(method.java:511) at com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1007) at com.android.internal.os.zygoteinit.main(zygoteinit.java:774) at dalvik.system.nativestart.main(native method) the methods alert , toast in class dp:
public static void mt(context ct,string str) { toast.maketext(ct,str,toast.length_short).show(); } public static void ma(context ct,string title, string message,integer icon,dialoginterface.onclicklistener dif) { alertdialog alertdialog = new alertdialog.builder(ct).create(); alertdialog.settitle(title); alertdialog.setmessage(message); alertdialog.setbutton("ok", dif); alertdialog.seticon(icon); alertdialog.show(); }
you can pass in context current toast method does. maketext (context context, string value, int duration). can pass context class when initialize it.
toast uses public static method if go route
Comments
Post a Comment