有没有办法Context在静态方法中获取当前实例?
我正在寻找那种方式,因为我讨厌每次更改时保存"Context"实例.
我创建了一个应用程序,我在我的主类(Main Activity)中注册了一个广播接收器,每当我收到BroadcastReceiver我想要更新的UI时,我想要显示一个警告框或设置我的一些文本视图MainActivity.我收到接收器中的所有值但无法设置它们,有人可以帮助我,以便我可以更新我的UI BroadcastReceiver.
我的BroadcastReceiver类是MainActivity的内部类,如下所示: -
public class MainActivity extends Activity {
..........
public static class NissanTabBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences shrd = context.getSharedPreferences("NissanGallery", context.MODE_WORLD_READABLE);
type = shrd.getString("type", "null");
badges = shrd.getString("badge_count", "null");
//badge_tips_text.setText(badges);
/*Editor edit = shrd.edit();
edit.remove("type");*/
Toast.makeText(context, "" + type + "\n" + badge_tips_text.getText().toString(), Toast.LENGTH_LONG).show();
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何帮助都会很明显
谢谢
我知道,这又是一个重复的问题,但我的情况是不同的问题.
我有一个带有静态函数和处理程序的类abc.之前我无法从静态函数调用处理程序.然后我用静态函数搜索Access非静态函数,发现一个解决方案是创建一个类和访问非静态变量的实例.但现在,为什么,我得到这个错误.
E/AndroidRuntime(13343): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
public class abc
{
static public void Instantiate()
{
abc xyz = new abc();
xyz.handler.sendEmptyMessage(1); **//GETTING ERROR IN THIS LINE**
}
public Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
switch (msg.what)
{
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题:如何从静态函数向处理程序发送消息?
Thankx.