我想知道是否有任何编程方式来识别某个活动是从onStart()还是onPause()恢复/接着?
Android activity life cycle - what are all these methods for?
提前致谢。
编辑:
我的问题可能不够明确。实际上,例如,我希望在我的活动从onPause但不是onStart恢复时显示吐司,是否可能?谢谢你的时间。
答案 0 :(得分:1)
在您的活动中保持一面旗帜。在onPause中将其设置为true,并在onResume中检查值并相应地执行任务。在onResume
的末尾将标志设置为false答案 1 :(得分:0)
我猜你需要的是Log
class(https://developer.android.com/reference/android/util/Log.html)。
这是Android Studio的教程:https://developer.android.com/studio/debug/am-logcat.html
由于某些原因,您似乎想跟踪on-方法,所以只需写下:
protected void onStart() {
Log.d("YourTag", "onStart() is called.");
super.onStop();
}
protected void onPause() {
Log.d("YourTag", "onPause() is called.");
super.onPause();
}
或者这是我用来跟踪方法的实用方法:
public static void currentMethod() {
Throwable t = new Throwable();
Log.d("SomeTag", "==== " + t.getStackTrace()[1].getClassName() + "#" + t.getStackTrace()[1].getMethodName()
+ " ====");
}
答案 2 :(得分:0)
是的,有任何编程方式可以识别活动是从onStart()还是onPause()恢复。
为了理解它我正在关注一个简单的通知申请:
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
///it will come in action after code of display notification function described below
DisplayNotification("ActivityLifeCycleDemo","onCreate");
sleepForaMinute();
}
}
现在我们将在活动中添加两个支持功能。
static final int NOTIFICATION_ID = 1776;
protected void DisplayNotification(String title,String message)
{
NotificationManager notifManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification note = new Notification(R.drawable.icon, title, System.currentTimeMillis());
PendingIntent intent = PendingIntent.getActivity(this, 0, new Intent(this, ActivityLifeCycleDemo.class), 0);
note.setLatestEventInfo(this, title, message, intent);
notifManager.notify(NOTIFICATION_ID, note);
}
protected void sleepForaMinute()
{
try
{
Thread.sleep(60000);
} catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
现在,当您开始活动时,您应该会在Android设备上看到如下所示的通知。
的onDestroy
现在让我们覆盖onDestroy事件,以便所有资源都是cleanas:
@Override
protected void onDestroy() {
super.onDestroy();
DisplayNotification("ActivityLifeCycleDemo","onDestroy");
}
onDestroy方法应该清理onCreate方法获取的以及之前被现在销毁的活动使用的所有资源。
在onStart
现在让我们覆盖onStart方法,如下所示:
@Override
protected void onStart() {
super.onStart();
DisplayNotification("ActivityLifeCycleDemo","onStart");
sleepForaMinute();
}
现在在这里 在onStart方法中,您应该启动活动所需的所有可见操作,例如显示动画,显示用户提示等。 的onStop 现在,让我们覆盖onStop方法,如下所示:
@Override
protected void onStop() {
super.onStop();
DisplayNotification("ActivityLifeCycleDemo","onStop");
}
onStop方法应该停止在onStart方法中启动的所有操作。由于活动是不可见的,因此您的活动不应执行(并消耗CPU周期)Android界面所需的任何任务。 的onResume
现在让我们覆盖onResume方法,如下所示:
protected void onResume() {
super.onResume();
DisplayNotification("ActivityLifeCycleDemo","onResume");
}
的onPause
现在让我们覆盖onPause方法,如下所示:
@Override
protected void onPause() {
super.onPause();
DisplayNotification("ActivityLifeCycleDemo","onPause");
}
结论
Android活动在其生命周期中会经历几种不同的状态。了解状态和事件将帮助您以更有效,更快速的方式为您的用户编写应用程序代码。 Android操作系统通过调用活动上的事件,让活动可以非常有效地管理自己,只要您仔细开发不同的事件即可。所以,在管理下一个Android应用程序的生命周期时玩得开心!