对话框:MyActivity 已停止
Dialog: MyActivity has stopped
我在 Android 上研究服务,在这个例子中我遇到了一个代码,其中一段时间后来自服务的消息。但是我不明白为什么我得到的是对话框"MyActivity has stopped"(下图link)而不是通知。我找到了原因,这是注释掉的行:
//Toast.makeText(this, "onCreate: Service work!", Toast.LENGTH_SHORT).show();
我的代码:
public class MyService extends Service {
@Override
public void onCreate() {
super.onCreate();
//Toast.makeText(this, "onCreate: Service work!", Toast.LENGTH_SHORT).show();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
try {
TimeUnit.SECONDS.sleep(3);
Toast.makeText(MyService.this, "onStartCommand: Ding!", Toast.LENGTH_SHORT).show();
}catch (InterruptedException ex){
ex.printStackTrace();
}
return super.onStartCommand(intent, flags, startId);
}
}
我从以下开始服务:
startService(new Intent(this,MyService.class));
在我的 AndroidManifest 服务中注册为:
<service android:name=".MyService" android:process=":com.myService"/>
问题:
请解释为什么我在 onCreate()
中使用 Toast
时收到此消息。
https://i.stack.imgur.com/VlHQ9.png
您的服务可能在不同的线程中。
使用处理程序显示吐司:
Handler handler = new Handler();
Runnable toastRunnable = new Runnable(){
@Override public void run() {
Toast.makeText(MyService.this, "onCreate: Service work!", Toast.LENGTH_SHORT).show();
}
};
handler.post(toastRunnable);
我在 Android 上研究服务,在这个例子中我遇到了一个代码,其中一段时间后来自服务的消息。但是我不明白为什么我得到的是对话框"MyActivity has stopped"(下图link)而不是通知。我找到了原因,这是注释掉的行:
//Toast.makeText(this, "onCreate: Service work!", Toast.LENGTH_SHORT).show();
我的代码:
public class MyService extends Service {
@Override
public void onCreate() {
super.onCreate();
//Toast.makeText(this, "onCreate: Service work!", Toast.LENGTH_SHORT).show();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
try {
TimeUnit.SECONDS.sleep(3);
Toast.makeText(MyService.this, "onStartCommand: Ding!", Toast.LENGTH_SHORT).show();
}catch (InterruptedException ex){
ex.printStackTrace();
}
return super.onStartCommand(intent, flags, startId);
}
}
我从以下开始服务:
startService(new Intent(this,MyService.class));
在我的 AndroidManifest 服务中注册为:
<service android:name=".MyService" android:process=":com.myService"/>
问题:
请解释为什么我在 onCreate()
中使用 Toast
时收到此消息。
https://i.stack.imgur.com/VlHQ9.png
您的服务可能在不同的线程中。 使用处理程序显示吐司:
Handler handler = new Handler();
Runnable toastRunnable = new Runnable(){
@Override public void run() {
Toast.makeText(MyService.this, "onCreate: Service work!", Toast.LENGTH_SHORT).show();
}
};
handler.post(toastRunnable);