a站网址大数据毕业后去什么岗位就业
a站网址,大数据毕业后去什么岗位就业,上海博览会2022,店铺推广语1#xff0c;返回栈
android中使用任务task来管理activity#xff0c;一个任务就是一组存放在栈里的活动的集合#xff0c;这个栈被称为返回栈。栈是一种先进先出的数据结构。当我们启动一个新的活动#xff0c;他会在返回栈中人栈#xff0c;并处以栈顶的位置#xff0…1返回栈
android中使用任务task来管理activity一个任务就是一组存放在栈里的活动的集合这个栈被称为返回栈。栈是一种先进先出的数据结构。当我们启动一个新的活动他会在返回栈中人栈并处以栈顶的位置而当我们按下back键或者finish去销毁一个活动时处于栈顶的活动会出栈这是前一个入栈的活动就会重新处于栈顶的位置。
2活动状态 在Android中Activity的活动状态可以根据其生命周期中的状态进行区分。
活动状态当Activity处于活动状态时它位于Activity栈的顶部是用户当前正在查看的界面与用户可以进行交互。
暂停状态当Activity失去焦点时或者被一个新的非全屏的Activity或者被一个透明的Activity放置在栈顶时Activity就转化为暂停状态。此时系统在杀死或者结束之前会调用onSaveInstance()方法来保存信息同时当Activity被移动到前台时重新启动该Activity并调用onRestoreInstance()方法加载保留的信息以保持原有的状态。
停止状态当Activity被另一个Activity完全覆盖的时候就被停止了。虽然此时它在运行但用户却看不见。
结束状态当Activity处于暂停或者停止状态时系统可以结束Activity回收资源。处于结束状态的Activity如果要使用户可见只要重启才可以。
3活动的生命周期
在Android中Activity的生命周期是由一系列的方法组成的这些方法在Activity的不同状态下被系统自动回调。这个生命周期可以被大致划分为三个阶段活动生命周期、暂停生命周期和停止生命周期。
活动生命周期 onCreate()当Activity正在被创建时调用。 onStart()Activity已经可见但还没出现在前台用户无法与其进行交互。 onResume()Activity已经可见并且出现在前台工作用户可以与它进行交互。
暂停生命周期 onPause()表示Activity正在暂停但Activity依然可见可以执行一些轻量级操作但一般不会进行太多操作因为这样会影响用户体验。
停止生命周期 onStop()表示Activity即将暂停此时Activity工作在后台已经不可见了可以与onPause方法一样做一些轻量级操作但依然不能太耗时。 onDestroy()表示活动即将被销毁。
这些方法都按照一定的顺序被调用且每个方法在其后继方法之前被调用。然而这些方法是否被回调并不完全依赖于Activity的状态还取决于是否需要系统资源来运行其他组件或进行其他操作。例如如果系统内存不足那么系统可能会销毁一些正在运行的Activity以释放资源。
4activity运行的生命周期的例子 以下是一个简单的Android应用程序演示了Activity生命周期的运行情况
1创建一个新的Android项目并在布局文件activity_main中添加一个按钮。
2在MainActivity中覆盖以下生命周期方法
public class MainActivity extends AppCompatActivity { private static final String TAG MainActivity; private TextView textView; Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView findViewById(R.id.text_view); Button button findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { Override public void onClick(View v) { startActivity(new Intent(MainActivity.this, SecondActivity.class)); } }); } Override protected void onStart() { super.onStart(); Log.d(TAG, onStart); } Override protected void onResume() { super.onResume(); Log.d(TAG, onResume); } Override protected void onPause() { super.onPause(); Log.d(TAG, onPause); } Override protected void onStop() { super.onStop(); Log.d(TAG, onStop); } Override protected void onDestroy() { super.onDestroy(); Log.d(TAG, onDestroy); }
}3创建一个名为SecondActivity的新Activity并在布局文件activity_second中添加一个文本视图。 4在SecondActivity中覆盖以下生命周期方法
public class SecondActivity extends AppCompatActivity { private static final String TAG SecondActivity; private TextView textView; Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); textView findViewById(R.id.text_view); } Override protected void onStart() { super.onStart(); Log.d(TAG, onStart); } Override protected void onResume() { super.onResume(); Log.d(TAG, onResume); }运行程序的log信息 点击按钮启动SecondActivity 由于第二个activity已经把main activity完全挡住因此onPause和onStop得到执行。 然后按back键返回main activity 之前main activity已经进入停止状态所以onReStartonStartonResume依次执行最后在main activity现在执行back键退出程序 依次执行onPauseonStoponDestroy销毁程序。
5activity中保存和恢复数据 在Android中Activity可以使用Bundle对象保存和恢复数据。下面是一个示例展示了如何在Activity之间保存和恢复数据
首先创建一个新的Activity类例如FirstActivity
public class FirstActivity extends AppCompatActivity { private static final String KEY_NAME name; private static final String KEY_EMAIL email; Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); if (savedInstanceState null) { Intent intent new Intent(this, SecondActivity.class); intent.putExtra(KEY_NAME, John Doe); intent.putExtra(KEY_EMAIL, johndoeexample.com); startActivity(intent); } else { String name savedInstanceState.getString(KEY_NAME); String email savedInstanceState.getString(KEY_EMAIL); //恢复数据到界面上 TextView nameTextView findViewById(R.id.name_text_view); TextView emailTextView findViewById(R.id.email_text_view); nameTextView.setText(name); emailTextView.setText(email); } }
}在这个示例中我们使用Bundle对象保存数据并使用putExtra()方法将数据传递给下一个Activity。在恢复数据时我们使用getString()方法从Bundle对象中获取数据并将其设置到界面上。
接下来创建一个名为SecondActivity的新Activity类
public class SecondActivity extends AppCompatActivity { private static final String KEY_NAME name; private static final String KEY_EMAIL email; Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); if (savedInstanceState null) { Intent intent getIntent(); String name intent.getStringExtra(KEY_NAME); String email intent.getStringExtra(KEY_EMAIL); //将数据保存到Bundle对象中 Bundle bundle new Bundle(); bundle.putString(KEY_NAME, name); bundle.putString(KEY_EMAIL, email); setResult(RESULT_OK, new Intent().putExtras(bundle)); } else { //从Bundle对象中获取数据并显示在界面上 String name savedInstanceState.getString(KEY_NAME); String email savedInstanceState.getString(KEY_EMAIL); TextView nameTextView findViewById(R.id.name_text_view); TextView emailTextView findViewById(R.id.email_text_view); nameTextView.setText(name); emailTextView.setText(email); } }
}在这个示例中我们使用getIntent()方法获取传递的数据并将其保存到Bundle对象中。然后我们使用setResult()方法将Bundle对象传递回上一个Activity。在恢复数据时我们使用getStringExtra()方法从Bundle对象中获取数据并将其设置到界面上。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88219.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!