栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android 中 ActivityLifecycleCallbacks的实例详解

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android 中 ActivityLifecycleCallbacks的实例详解

Android 中 ActivityLifecycleCallbacks的实例详解

          以上就是使用ActivityLifecycleCallbacks的实例,代码注释写的很清楚大家可以参考下,

MyApplication如下:

package com.cc; 
 
import java.util.linkedList; 
 
import android.app.Activity; 
import android.app.Application; 
import android.os.Bundle; 
 
public class MyApplication extends Application { 
  private static int activityCounter=0; 
  private static MyApplication mApplicationInstance; 
  private static linkedList mActivitylinkedList; 
  private ActivityLifecycleCallbacksImpl mActivityLifecycleCallbacksImpl; 
  @Override 
  public void onCreate() { 
    super.onCreate(); 
    mApplicationInstance=new MyApplication(); 
    mActivitylinkedList=new linkedList(); 
    mActivityLifecycleCallbacksImpl=new ActivityLifecycleCallbacksImpl(); 
    this.registerActivityLifecycleCallbacks(mActivityLifecycleCallbacksImpl); 
  } 
   
  public static MyApplication getInstance() { 
    if (null==mApplicationInstance) { 
      mApplicationInstance=new MyApplication(); 
    } 
    return mApplicationInstance; 
  } 
   
  //判断App是否在后台运行 
  public boolean isAppRunningBackground(){ 
    boolean flag=false; 
    if(activityCounter==0){ 
      flag=true; 
    } 
    return flag; 
  } 
   
  //退出应用 
  public void finishAllActivity(){ 
    //unregisterActivityLifecycleCallbacks(mActivityLifecycleCallbacksImpl); 
    System.out.println("--> mActivitylinkedList.size()="+mActivitylinkedList.size()); 
    if(null!=mActivitylinkedList){ 
      for(Activity activity:mActivitylinkedList){ 
 if(null!=activity){ 
   activity.finish(); 
 } 
      } 
    } 
  } 
   
   
  private class ActivityLifecycleCallbacksImpl implements ActivityLifecycleCallbacks{ 
    @Override 
    public void onActivityCreated(Activity activity, Bundle savedInstanceState) { 
      System.out.println("onActivityCreated --> "+activity.getClass().getName()); 
      if (null!=mActivitylinkedList&&null!=activity) { 
 mActivitylinkedList.addFirst(activity); 
      } 
    } 
 
    @Override 
    public void onActivityStarted(Activity activity) { 
      activityCounter++; 
      System.out.println("onActivityStarted --> "+activity.getClass().getName()+",activityCounter="+activityCounter); 
    } 
 
    @Override 
    public void onActivityResumed(Activity activity) { 
      System.out.println("onActivityResumed --> "+activity.getClass().getName()); 
    } 
 
    @Override 
    public void onActivityPaused(Activity activity) { 
      System.out.println("onActivityPaused --> "+activity.getClass().getName()); 
    } 
 
    @Override 
    public void onActivityStopped(Activity activity) { 
      activityCounter--; 
      System.out.println("onActivityStopped --> "+activity.getClass().getName()+",activityCounter="+activityCounter); 
    } 
 
    @Override 
    public void onActivitySaveInstanceState(Activity activity, Bundle outState) { 
      System.out.println("onActivitySaveInstanceState --> "+activity.getClass().getName()); 
    } 
 
    @Override 
    public void onActivityDestroyed(Activity activity) { 
      System.out.println("onActivityDestroyed --> "+activity.getClass().getName()); 
      if (null!=mActivitylinkedList&&null!=activity) { 
 if (mActivitylinkedList.contains(activity)) { 
   mActivitylinkedList.remove(activity); 
 } 
      } 
    } 
     
  } 
 
} 

FirstActivity如下:

package com.cc; 
 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
public class FirstActivity extends Activity { 
   private Context mContext; 
   private Button mOpenNewActivityButton; 
   private Button mFinishThisActivityButton; 
   private ClickListenerImpl mClickListenerImpl; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.first_activity); 
    init(); 
  } 
   
  private void init(){ 
    mContext=this; 
    mClickListenerImpl=new ClickListenerImpl(); 
    mOpenNewActivityButton=(Button) findViewById(R.id.openNewActivityButton); 
    mOpenNewActivityButton.setonClickListener(mClickListenerImpl); 
    mFinishThisActivityButton=(Button) findViewById(R.id.finishThisActivityButton); 
    mFinishThisActivityButton.setonClickListener(mClickListenerImpl); 
  } 
   
   
  private class ClickListenerImpl implements onClickListener { 
    @Override 
    public void onClick(View v) { 
      switch (v.getId()) { 
      case R.id.openNewActivityButton: 
 Intent intent=new Intent(mContext, SecondActivity.class); 
 startActivity(intent); 
 break; 
      case R.id.finishThisActivityButton: 
 finish(); 
 break; 
 
      default: 
 break; 
      } 
 
    } 
 
  } 
   
  @Override 
  protected void onResume() { 
    super.onResume(); 
    //System.out.println(" first Activity onResume --> "+MyApplication.getInstance().isAppRunningBackground()); 
  } 
   
  @Override 
  protected void onStop() { 
    super.onStop(); 
    //System.out.println(" first Activity onStop --> "+MyApplication.getInstance().isAppRunningBackground()); 
  } 
   
   
} 

SecondActivity如下:

package com.cc; 
 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
 
public class SecondActivity extends Activity { 
   private Context mContext; 
   private Button mOpenNewActivityButton; 
   private Button mFinishThisActivityButton; 
   private ClickListenerImpl mClickListenerImpl; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.second_activity); 
    init(); 
  } 
   
  private void init(){ 
    mContext=this; 
    mClickListenerImpl=new ClickListenerImpl(); 
    mOpenNewActivityButton=(Button) findViewById(R.id.openNewActivityButton); 
    mOpenNewActivityButton.setonClickListener(mClickListenerImpl); 
    mFinishThisActivityButton=(Button) findViewById(R.id.finishThisActivityButton); 
    mFinishThisActivityButton.setonClickListener(mClickListenerImpl); 
  } 
   
   
  private class ClickListenerImpl implements onClickListener { 
    @Override 
    public void onClick(View v) { 
      switch (v.getId()) { 
      case R.id.openNewActivityButton: 
 Intent intent=new Intent(mContext, ThirdActivity.class); 
 startActivity(intent); 
 break; 
 
      case R.id.finishThisActivityButton: 
 finish(); 
 break; 
 
      default: 
 break; 
      } 
 
    } 
 
  } 
 
   
} 

ThirdActivity如下:

package com.cc; 
 
import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
 
public class ThirdActivity extends Activity { 
   private Context mContext; 
   private Button mFinishAllActivityButton; 
   private Button mFinishThisActivityButton; 
   private ClickListenerImpl mClickListenerImpl; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.third_activity); 
    init(); 
  } 
   
  private void init(){ 
    mContext=this; 
    mClickListenerImpl=new ClickListenerImpl(); 
    mFinishThisActivityButton=(Button) findViewById(R.id.finishThisActivityButton); 
    mFinishThisActivityButton.setonClickListener(mClickListenerImpl); 
    mFinishAllActivityButton=(Button) findViewById(R.id.finishAllActivityButton); 
    mFinishAllActivityButton.setonClickListener(mClickListenerImpl); 
  } 
   
   
  private class ClickListenerImpl implements onClickListener { 
    @Override 
    public void onClick(View v) { 
      switch (v.getId()) { 
      case R.id.finishThisActivityButton: 
 finish(); 
 break; 
      case R.id.finishAllActivityButton: 
 MyApplication.getInstance().finishAllActivity(); 
 break; 
      default: 
 break; 
      } 
 
    } 
  } 
   
  @Override 
  protected void onResume() { 
    super.onResume(); 
    //System.out.println(" third Activity onResume --> "+MyApplication.getInstance().isAppRunningBackground()); 
  } 
   
  @Override 
  protected void onStop() { 
    super.onStop(); 
    //System.out.println(" third Activity onStop --> "+MyApplication.getInstance().isAppRunningBackground()); 
  } 
   
  @Override 
  protected void onDestroy() { 
    super.onDestroy(); 
    //System.out.println(" third Activity onDestroy --> "+MyApplication.getInstance().isAppRunningBackground()); 
  } 
 
   
} 

first_activity.xml如下:

 
 
  

second_activity.xml如下:

 
 
  

third_activity.xml如下:

 
 
   
 
  

AndroidManifest.xml如下:

 
 
 
   
 
   
     
       
  
 
  
       
     
     
     
     
   
 
 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/157915.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号