前台方法在安卓Jellybean系统中无法运行

3
我已经为我的聊天应用程序实现了服务,该概念应该与WhatsApp类似,可以显示在线和最后查看时间。
当我将在线和最后查看时间的服务应用到我的应用程序中时,在从棒棒糖升级到棒棒糖的情况下,它可以正常运行 100%。但是,当我从果冻豆豆升级到棒棒糖时,它不再起作用。
@Override
    protected void onStop() {
        super.onStop();

        if (Utils.isAppSentToBackground(getApplicationContext())) {

            // call web Service here
            // Log.e("Angel", "in back");
            Utils.setInBackGround(getApplicationContext(), true);
            callOnlineOfflineService("0");
        }
    }


// code for resume called
    @Override
    protected void onResume() {
        super.onResume();
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
        if (Utils.isInBackGround(getApplicationContext())) {
            // Log.e("Angel", "From back");

            Utils.setInBackGround(getApplicationContext(), false);
            callOnlineOfflineService("1");
        }
    }

这里,Util是我的通用类,其中我实现了通用方法,setInBackground方法将凭据设置到SessionManager。

void callOnlineOfflineService(String status) {

        Log.e("status:::::online", "status" +status);

        if(!myclass.isConnected(getApplicationContext())){
            errordialog(getResources().getString(R.string.no_internet));
            return;
        }

        final List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("mode", "setUserOnlineStatus"));
        params.add(new BasicNameValuePair("userId", uid));
        params.add(new BasicNameValuePair("status", status));

        Log.e("status:::::online", "status" +params);

            Runnable runnable = new Runnable() {
                public void run() { 

                    UserFunctions userFunction = new UserFunctions(getApplicationContext());
                    JSONObject json = userFunction.CommonObject(params);

                        try {

                            final String s = json.getString("status");
                            Log.e("status:::::online", "status" +s);

                        } catch (JSONException e) {
                            e.printStackTrace();
                             return;
                        }
                }
            };
            Thread mythread = new Thread(runnable);
            mythread.start();
    }

非常感谢您的辛勤工作和努力,我们将不胜感激。提前致谢。

1个回答

2
我已经尝试并得出了结论,这个方法行得通。
只要确保您已经授予以下权限,那么上面的代码就可以正常工作,否则它会在某些操作系统上无法工作。
<uses-permission android:name="android.permission.GET_TASKS" />

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接