我在这里和其他地方读过几篇关于生命周期的帖子,但我仍然感到困惑.我们在onpause中存储了什么,我们如何存储它以及如何在onresume方法中调用它.任何更多的信息,如果可能的话,一个详细的例子将不胜感激.
我试图执行一些代码,每当我的活动被杀害,但不是当它只是移动到背景(所以只是调用它的onPause()是不是一个解决方案),我理解onDestory()是不能保证调用.我一直在寻找并没有找到办法做到这一点.我怎样才能解决这个问题?可能吗?
我的Android应用程序中有一个功能,每次用户尝试编辑他或她的个人资料时都需要运行.在我的应用程序中有两个部分的编辑配置文件(请不要问为什么,它背后有一个非常漫长的繁琐原因).如果用户决定取消所有内容,我需要恢复用户在编辑配置文件的第一部分所做的更改.我在第二部分编辑个人资料发了取消按钮,但我的问题是,如果有什么用户按下返回按钮或设备上的HOME键和应用程序调用onPause()和onStop()?如何在活动的这两个阶段运行相同的代码?那些知道如何将代码放在不同状态的活动的人吗?我只是创建一个函数onPause()并将代码粘贴在那里吗?那会有用吗?
我有一个ListView,onResume我试图填充SQL Lite数据库中的数据.在恢复期间,我添加了一个单击侦听器并重新填充列表视图.onResume,populateListView()和onPause方法如下所示.完整的源代码可以在GitHub上找到.
的onResume:
@Override
protected void onResume() {
IntentFilter filter = new IntentFilter();
filter.addAction(TalkServerIntent.INTENT_NEW_MESSAGES.toString());
registerReceiver(receiver, filter);
setContentView(R.layout.main);
talkListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parentView, View childView,
int position, long id) {
GeoCamTalkMessage msg = adapter.getTalkMessage(position);
if (msg.hasAudio()) {
try {
UIUtils.playAudio(getApplicationContext(), msg, player,
siteAuth);
} catch (Exception e) {
UIUtils.displayException(getApplicationContext(), e,
"Cannot retrieve audio");
}
}
}
});
populateListView();
super.onResume();
}
Run Code Online (Sandbox Code Playgroud)
populateListView:
private void populateListView() {
try {
talkMessages = messageStore.getAllMessages();
} catch (Exception e) {
Log.i("Talk", …Run Code Online (Sandbox Code Playgroud) 我的问题是...如果我们尝试在 startActivity() 之后执行一些代码,我们会在当前 Activity 的 onPause() 被调用之前完全执行吗?也就是说,我不知道 startActivity() 是否会在包含它的方法到达末尾时实际调用(该finish()方法会发生这种情况)。
我有一个示例,在该示例中,我想要在detach()基于某些条件启动新 Activity 后创建一个对象(具有数据库连接),但我需要此对象来评估一个条件。我知道我可以检查该条件并detach()在第一个之前存储布尔值和它if,但我想知道以下代码是否“合法”。
谢谢!
protected void onListItemClick(ListView l, View v, int position, long id) {
super.onListItemClick(l, v, position, id);
School selectedSchool = new School((Cursor)l.getItemAtPosition(position));
mSharedPreferences.edit()
.putLong(DatabaseManager.SCHOOL_ID, selectedSchool.getIdOpenErp())
.commit();
School.SchoolManager schoolManager = new School.SchoolManager(this);
Long[] sessionIdsOpenErpOfSelectedSchool = schoolManager.getSessionIdsOpenErp(selectedSchool);
if (sessionIdsOpenErpOfSelectedSchool.length > 0) {
if (schoolManager.isPreviousWorkingSchoolPresent()) { // line 10
Intent iParticipationManagement = new Intent(this, ParticipationManagement.class);
startActivity(iParticipationManagement);
} else {
Intent iSelectExistingSession = …Run Code Online (Sandbox Code Playgroud) 我创建了一个对话框,但根据活动工作流程,它应该触发暂停,但事实并非如此。出了什么问题?Android 活动流程:http://developer.android.com/training/basics/activity-lifecycle/pausing.html
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
//stopAutoCall = true;
// Handle item selection
// if (item.getTitle().toString().toLowerCase() == "settings")
// {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Number");
alert.setMessage("Put here the number in to call");
alert.show();
}
@Override
public void onPause()
{
super.onPause();
stopAutoCall = true;
}
Run Code Online (Sandbox Code Playgroud) 如何检测从后台到前台es6的任何方法?
在React-native中这可能吗?是否有任何类或工具可以帮助这种方法?
在片段中我有这个:
onPause(){
super.onPause();
if(flag){
getActivity.finish();
}else{
}
}
onResume(){
flag = true;
super.onResume();
}
Run Code Online (Sandbox Code Playgroud)
并且有一个Button,点击我将此标志设置为false:
Button.onClick{
flag = false;
}
Run Code Online (Sandbox Code Playgroud)
这个想法是:
单击按钮时,请勿完成此活动.但是当设备BackButton被按下finish()时.
但这种逻辑不起作用.原因是,当我按下设备的BackButton时,onPause没有被调用.
这是Activty中的第四个片段.因此,当我按BackButton时,我可以看到第3片段.我不想这样做.
我在API 10设备上使用它,但我的应用程序使用支持库v4.
谢谢.
当我使用系统("暂停")时,屏幕上会出现一行"按任意键继续...".
这是一种冥想,使阅读输出相当麻烦.
有没有办法阻止它的到来?
在我的应用程序中,我有5个活动(不包括主要活动Im)以循环方式重复使用其他4个活动。
在我的每个活动(主要除外)的onPause()方法中,我都编写了Activityname.this.finish();。
当我结束第五项活动的周期并返回到主要活动时...
但是我的问题是当我结束主要活动时..而不是关闭应用程序,它进入了第三次活动。
我不知道到底是哪里出了问题。可能在使用db n的第三活动im中没有明确关闭它。这有问题吗?
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
PlayerDetails.this.finish();
}
Run Code Online (Sandbox Code Playgroud)
我正在使用此onPause()方法
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode==KeyEvent.KEYCODE_BACK){
AlertDialog.Builder alert = new AlertDialog.Builder(MainActivity.this);
alert.setIcon(R.drawable.ic_launcher);
alert.setTitle(R.string.app_name);
alert.setMessage("Really Exit?");
alert.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface dialog, final int which) {
MainActivity.this.finish();
dialog.dismiss();
}
});
alert.setNegativeButton("No", new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface dialog, final int which) {
dialog.dismiss();
}
});
try{
AlertDialog dialog …Run Code Online (Sandbox Code Playgroud)