当用户通过android中的任务滑动删除应用程序时执行注销

时间:2014-09-26 06:59:52

标签: android android-service swipe logout

当用户用户从当前正在运行的应用列表中删除应用时,我想清除用户凭据并将用户注销。在这里,我正在做的是,当用户通过刷掉应用列表来结束应用时,应用内的应用应执行注销。但是当用户通过滑动删除应用程序时,它什么都不做。以下是我的代码。

public class MyService extends Service{

    public void onTaskRemoved(){
        Log.i("RootActivity:onTaskRemoved()","******TaskRemoved******");
        SharedPreferences pref = getSharedPreferences(getString(R.string.pref_current_user), MODE_PRIVATE);             
        SharedPreferences.Editor editor = pref.edit();
        editor.clear();     // CLEAR ALL FILEDS
        editor.commit();    // COMMIT CHANGES
        Log.i("RootActivity:onTaskRemoved()","******APP LOGGEDOUT******");
        setloginButton();   // Change logout button to login
        Log.i("RootActivity:onTaskRemoved()","******loginButton is set******");
    }

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
}

3 个答案:

答案 0 :(得分:1)

您只能使用bindService()绑定服务,因此onTaskRemoved()永远不会被调用。

使用服务你可以 -

  • 绑定
  • 开始
  • 绑定并开始

documentation通常会分别讨论这两种类型的服务,您的服务可以双向工作,这就是您需要做的事情 -

可以启动(to run indefinitely)并允许绑定。

只需要实现一些回调方法:onStartCommand()允许组件启动它,onBind()允许绑定。

同时执行 -

startService(new Intent(context, MyService.class));

// Bind to the service
bindService(new Intent(context, MyService.class),
mConnection, Context.BIND_AUTO_CREATE);

答案 1 :(得分:0)

protected void onDestroy() {
SharedPreferences pref=getSharedPreferences(getString(R.string.pref_current_user),MODE_PRIVATE);             
    SharedPreferences.Editor editor = pref.edit();
    editor.clear();     // CLEAR ALL FILEDS
    editor.commit();    // COMMIT CHANGES
    Log.i("RootActivity:onTaskRemoved()","******APP LOGGEDOUT******");
    setloginButton();   // Change logout button to login
    Log.i("RootActivity:onTaskRemoved()","******loginButton is set******");  
super.onDestroy();
}

在您的活动中添加....

答案 2 :(得分:0)

与Firebase结合使用,就像

一样简单
   @Override
protected void onDestroy() {
    super.onDestroy();
    FirebaseAuth.getInstance().signOut();
}