①新建一个 ActivityCollector 类,作为活动管理器,代码如下所示:
public class ActivityCollector {
public static List<Activity>activities = new ArrayList<>()
public static void addActivity(Activity activity) {
activities.add(activity)
}
public static void removeActivity(Activity activity) {
activities.remove(activity)
}
public static void finishAll() {
for (Activity activity : activities)
{
if(!activity.isFinishing())
{
activity.finish()
}
}
activities.clear()
//以下是杀死当前程序进程的代码,保证程序彻底退出。
android.os.Process.killProcess(android.os.Process.myPid())
}
}
②再新建一个类BaseActivity,并让所有活动继承这个类,也就是其他的全部活动都改为extends BaseActivity,而不是原来的extends AppCompatActivity。
public class BaseActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState)
Log.d("BaseActivity", getClass().getClass().getSimpleName())
ActivityCollector.addActivity(this)
}
@Override
protected void onDestroy() {
super.onDestroy()
ActivityCollector.removeActivity(this)
}
}
③在你想要退出程序的页面(Activity)的setContentView(R.layout.*****)下面加上如下代码,从而实现点击一个按钮退出整个程序。
Button button3 = (Button) findViewById(R.id.*****)
button3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ActivityCollector.finishAll()
}
})
//*号部分看具体情况而定
创建 Runnable 对象执行退出登录逻辑,使用 Handler.postDelayed 开始计时,触摸事件监听中和 Activity 销毁时使用 Handler.removeCallbacks 取消计时。Handler 从主线程获得,可以直接在 Runnable 中 *** 作 View 对象。能不开线程还是不开线程的好。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)