显示使用Android的敬酒
我想实现在连接处理类显示使用Android的敬酒
public class server implements Runnable {
private static final String TAG = "myLogs";
.....
public void run()
{
.....
while (true) {
try {
client = server.accept();
// here i want to show message, when client is connected
Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();
Log.d(TAG, "client connected....");
烤面包,但我对makeText和getApplicationContext()得到错误信息; 他们强调..
只能在活动或服务中获取可运行的getApplicationContext()。 要在可运行的应用程序中获取应用程序上下文,您应该将活动的上下文传递给可运行的应用程序。
但在你的情况下,你想要在活动上下文中显示敬酒。为了做到这一点,传递活动对象并调用runOnUIThread方法。给你的活动为背景的吐司:
public class Server implements Runnable {
private static final String TAG = "myLogs";
private Activity myActivity;
public Server(final Activity activity) {
this.myActivity = activity;
}
.....
public void run()
{
.....
while (true) {
try {
client = server.accept();
// here i want to show message, when client is connected
myActivity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(myActivity, "msg msg", Toast.LENGTH_SHORT).show();
Log.d(TAG, "client connected....");
}
});
这也说明如下: Android: Toast in a thread
我试过这个变种,我没有错误,但是我没有在我的手机上得到任何祝酒信息,我的应用程序崩溃了,执行其他函数的相同问题,如thread.stop(),finish()应用程序,哪里可以有问题?我不知道 – chajka 2013-04-26 15:06:59
我没有完全回答你的问题抱歉,只有部分获得应用程序上下文。我纠正它显示从一个线程吐司或在一个活动上运行。 – 2013-05-02 15:06:12
我认为你的getApplicationContext()方法可能返回NULL。我认为这是因为你正在从一个线程运行敬酒,这将脱离UI线程。
您将需要从具有UI上下文的应用程序中的某处调用此方法(这意味着某处系统可以获得UI线程的句柄 - 或需要显示Toast的地方)。
尝试创建敬酒之前得到的应用程序上下文(可能使用此语法):
Context ctx =getApplicationContext();
然后,确保它是不是要显示你的面包前NULL。
如果它实际上是NULL,则需要通过上下文(使用该方法的地方你有背景,并把它传递到您的线程作为参数)
首先检查你做了正确的导入(我认为它是导入android.widget.Toast;或者你可以使用导入android.widget。*;肯定)。然后尝试使用此代替getApplicationContext()或activityname.this。
我添加了导入android.widget.Toast,但是当我使用server.this时,它也被加下划线 – chajka 2013-04-26 13:31:49
试试这个。
上下文上下文; context = this;
Toast.makeText(context,“msg msg”,Toast.LENGTH_SHORT).show();
或
Toast.makeText(ClassName.this, “MSG msg” 中,Toast.LENGTH_SHORT).show();
或
Toast.makeText(this.getApplicationContext(), “MSG msg” 中,Toast.LENGTH_SHORT).show();
从您的通话活动传递通过构造背景和使用,而不是getApplicationContext – 2013-04-26 13:10:13