显示来自服务

时间:2016-07-07 06:59:33

标签: android android-service android-notifications android-alertdialog toast

我有一个监控前台应用的后台服务。它用于保护某个应用程序,以便如果受保护的应用程序位于前台,然后由于另一个应用程序启动而被推送到后台,则会向用户显示另一个应用程序已接管为前台应用程序的通知。

我能够检测到交换机,但有没有办法在检测到后显示Toast通知/ AlertDialog以提醒服务中的用户?

3 个答案:

答案 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);