显示来自服务的 Toast 通知
Showing a Toast notification from a service
我有一个监控前台应用程序的后台服务。它用于保护某个应用程序,如果受保护的应用程序在前台,然后因为另一个应用程序启动而被推到后台,它会向用户显示另一个应用程序已接管为前台应用程序的通知。
我能够检测到开关,但是有什么方法可以显示 Toast notification/AlertDialog 以在检测到后提醒服务中的用户?
您可以在 Service
class 中获取应用程序基础上下文并使用 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, "Printing Toast Message", Toast.LENGTH_SHORT).show();
}
});
}
}
这样试试
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);
您可以使用 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();
}
});
我有一个监控前台应用程序的后台服务。它用于保护某个应用程序,如果受保护的应用程序在前台,然后因为另一个应用程序启动而被推到后台,它会向用户显示另一个应用程序已接管为前台应用程序的通知。
我能够检测到开关,但是有什么方法可以显示 Toast notification/AlertDialog 以在检测到后提醒服务中的用户?
您可以在 Service
class 中获取应用程序基础上下文并使用 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, "Printing Toast Message", Toast.LENGTH_SHORT).show();
}
});
}
}
这样试试
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);
您可以使用 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();
}
});