我有一个监控前台应用的后台服务。它用于保护某个应用程序,以便如果受保护的应用程序位于前台,然后由于另一个应用程序启动而被推送到后台,则会向用户显示另一个应用程序已接管为前台应用程序的通知。
我能够检测到交换机,但有没有办法在检测到后显示Toast通知/ AlertDialog以提醒服务中的用户?
答案 0 :(得分:4)
您可以在Service
课程中获取应用基础环境,并使用Handler
显示祝酒词。
private Context appContext;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
appContext=getBaseContext();//Get the context here
}
//Use this method to show toast
void showToast(){
if(null !=appContext){
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run()
{
Toast.makeText(appContext, "Toast Message", Toast.LENGTH_SHORT)show();
}
});
}
}
答案 1 :(得分:1)
您可以使用Handler来获取主循环器。尝试以下片段
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable(){
@Override
public void run(){
Toast.makeText(YourServiceName.this,"your message",Toast.LENGHT_SHORT).show();
}
});
答案 2 :(得分:0)
试试这个
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
Toast.makeText(getBaseContext(), "TEST", Toast.LENGTH_SHORT).show();
handler.postDelayed(this, 1000);
}
},1000);