Ok i have tons of $http() calls all around the app code,
i'm wondering is there any way / best practice to detect when all $http() around the app have finished ( success/error donesn't matter what they return, just need to know if finished )?
So that i can show a loading gif until they are loading ?
thanks
简单的问题:你能确定finish()会打电话onDestroy()吗?我还没有找到任何确认.
我正在将一个iPhone应用程序移植到Android上,除了root活动之外,我似乎无法找到在堆栈上弹出每个活动的方法.
在objective-c中,我会做类似下面的事情
[navController popToRootViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
有人知道我是否可以在采取某些行动后对每项活动进行有效的"完成()"调用?
我有4个活动说Act1,Act2,Act3和Act4.Act1中的按钮打开Act2,Act2中的按钮打开Act3,Act3中的按钮打开Act4.
我想要做两件事:
我在Act4中有一个按钮,用户指向Act1,问题是当用户点击Act1时,我想关闭应用而不是打开Act4 ..
当用户选择它时,我在所有活动的菜单'exit'中有选项,我想关闭应用程序而不是回到之前的活动.
尝试使用,finish();但它不符合我的要求.
我正在开发一个自动播放mp3文件的应用程序,并在给定的活动中连续播放.它通过从MediaPlayer收听"onCompletion"事件来了解当前mp3播放的完成时间.
但是,如果我在播放媒体时按后退按钮返回到开始显示,显然活动仍在运行.当触发"onCompletion"事件时,它会尝试访问列表活动中的视图并在空指针异常时崩溃.
确定活动不再"活动"的最佳方法是什么,因此能够阻止呼叫播放下一个音频?
我正试图让我的活动关闭并返回结果,我在父活动中确实有onActivityResult,并且我在其它工作的地方使用了接近相同的方法.
public void deleteFile(){
boolean deleted=FileManager.getInstance().deleteMeasurementData(this.getIntent().getData(), this);
if(deleted){
Toast.makeText(this, originalData.getName() +".mmd Has been deleted", Toast.LENGTH_SHORT);
setResult(EditMeasurement.RESULT_YES_DELETED);
finishActivity(EditMeasurement.RESULT_YES_DELETED);
}else {
Toast.makeText(this, originalData.getName() +".mmd did NOT delete", Toast.LENGTH_SHORT);
Log.e(TAG, "File did NOT delete error");
}
}
Run Code Online (Sandbox Code Playgroud)
从此菜单调用此方法:
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
Log.i(TAG, "something choosen "+item.getItemId()+" it should have been: "+R.id.om_measurement_menu_delete);
switch (item.getItemId()) {
case R.id.om_measurement_menu_edit:
editFile();
return true;
case R.id.om_measurement_menu_delete:
deleteFile();
return true;
case R.id.om_measurement_menu_cancel:
endActivity();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
Run Code Online (Sandbox Code Playgroud)
谁有任何明智的想法,为什么它不关闭?
我之前在几个活动中使用了方法finish()没有问题.
但是当我试图在广播接收器内部调用它时,我从编译器得到错误消息"对于AudioService类型,方法finish()未定义"
AudioService是我的Android应用程序中的Service类的名称.
如果一个服务中没有finish()方法,那么我可以调用什么来杀死这个服务?
我得到了这个异常:"java.lang.IllegalStateException:无法调用来传递结果",并没有立即理解为什么.以下是我为何发生这种情况的答案,也许这有助于某人.
(是的,我已经查看了与此问题相关的现有问题.)
我finish()从我的Activity的Up按钮监听器调用.但是,虽然onDestroy()确实被称为被调用,但首先onPause()被调用然后,令人惊讶的onCreate()是,这导致了真正的问题.为什么ScanningActivity通过调用finish()ScanningActivity方法启动新的操作?
我正在记录所有生命周期函数的调用,顺序是这样的:
inside onClick() Listener for up button.
Inside onPause()
Inside onCreate() // this is what's hosing everything
Inside onStart()
Inside onResume()
Inside onWindowFocusChanged()
Inside onStop()
Inside onDestroy()
Run Code Online (Sandbox Code Playgroud)
为什么我在调用后会收到这一系列事件finish()?这是在侦听器ScanningActivity中调用finish(),通知的代码onclick(在onCreate()方法中分配):
@Override
public void onCreate(Bundle savedInstanceState)
{
. . .
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v)
{
Log.i("ScanningActivity", "inside onClick() -- Listener for up button being executed."); …Run Code Online (Sandbox Code Playgroud) android back-button oncreate activity-lifecycle activity-finish
我想从父活动中关闭子活动.我的流程就像活动A在活动AI打开活动B中打开.但同时我的活动A正在做一些后台任务.当我得到后台任务的结果时,我想关闭活动A中的活动B.
是否可以这样做.需要帮忙.谢谢.
activity-finish ×10
android ×9
angularjs ×1
back-button ×1
detect ×1
exit ×1
http ×1
java ×1
javascript ×1
kill ×1
oncreate ×1
ondestroy ×1
parent-child ×1
service ×1