在为活动调用onDestroy后进行API调用

时间:2016-11-23 05:01:23

标签: android ondestroy

在Android上,在调用了一个活动的onDestroy之后,我需要进行API调用。最好的方法是什么?

我尝试过调用一个意向服务,但是在应用关闭后它没有运行。

4 个答案:

答案 0 :(得分:1)

This正是您要找的。它可以通过Application类的registerActivityLifecycleCallbacks方法应用。

答案 1 :(得分:1)

如果应用已强制关闭ondestroyonPause未被调用,则根据文档onPause方法是最后一种方法,肯定会被调用 所以最好在 if let userDefaults = UserDefaults(suiteName: "group.watch.app.com" ) { userDefaults.set( UserProfileObj as AnyObject, forKey: "UserInfo") userDefaults.synchronize() } } 方法

中进行api调用

答案 2 :(得分:1)

最好在onStop上启动服务而不是onDestroy,在我的情况下,像魅力一样工作,希望可能适用于

  @Override
protected void onStop() {
    super.onStop();
    startService(new Intent(this, ServerCall.class));
}

@Override
protected void onDestroy() {
    super.onDestroy();
}

公共类ServerCall扩展了服务{

@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);

    Log.d("MyApp","Service started");
    goActive("0");
}



public void goActive(final String status) {

    StringRequest sr = new StringRequest(Request.Method.POST,
            GO_ACTIVE,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {

                    //    Log.d("MyApp",response);
                }
            }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("MyApp", error.toString());

        }
    }) {
        @Override
        protected Map<String, String> getParams() {

            Log.d("MyApp", SharedpreferenceUtility.getInstance().getString(Constants.KEY_EMAIL));
            Map<String, String> params = new HashMap<String, String>();
            params.put("email", SharedpreferenceUtility.getInstance().getString(Constants.KEY_EMAIL));
            params.put("status", status);
            return params;
        }

    };
    EarningChamp.getInstance().addToRequestQueue(sr);
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    return null;
}

}

答案 3 :(得分:0)

是的,您可以使用Intent Service实现目标,在onDestroy()

中使用该服务

您可以查看以下示例。

http://stacktips.com/tutorials/android/creating-a-background-service-in-android