use*_*005 13 android android-intent android-activity back-stack activity-manager
我在我的应用程序中打开一个链接,一旦按下后我想显示HomePage以保留用户更多时间.我一直在努力实现这一目标但却无法做到这一点.我将homeLauncher活动作为我的top和baseActivity.
DeepLink Tap>打开所需的活动>用户按下后退按钮>检查其上一个活动但不是homeActivity>如果是,请将用户导航到homeActivity.
尝试以下代码:
@Override
public void onBackPressed() {
ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
if(taskList.get(0).numActivities == 1 && taskList.get(0).topActivity.getClassName().equals(this.getClass().getName())){
//// This is last activity
}
else{
//// There are more activities in stack
}
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
我也试过isTaskRoot但结果是一样的.它没有给出正确的答案.请帮助
小智 5
使用 isTaskRoot() 方法。(来自 h9kdroid评论 -此处)
@Override
public void onBackPressed() {
ActivityManager mngr = (ActivityManager) getSystemService( ACTIVITY_SERVICE );
List<ActivityManager.RunningTaskInfo> taskList = mngr.getRunningTasks(10);
if(isTaskRoot()){
//// This is last activity
} else{
//// There are more activities in stack
}
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
请注意,以下解决方案仅适用于 API14+。
创建自定义应用程序类;
public class App extends Application {
private int created;
@Override
public void onCreate() {
registerActivityLifecycleCallbacks(new Callbacks());
}
public int getCreated() {
return created;
}
private class Callbacks implements ActivityLifecycleCallbacks {
@Override
public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
created++;
}
@Override
public void onActivityDestroyed(Activity activity) {
created--;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在应用程序元素的 AndroidManifest.xml 中注册它;
<application name=".App"/>
Run Code Online (Sandbox Code Playgroud)
在通过深层链接打开的活动中,使用以下代码;
@Override
public void onBackPressed() {
if (((App) getApplicationContext()).getCreated() == 1) {
// start your home activity
}
super.onBackPressed();
}
Run Code Online (Sandbox Code Playgroud)
我凭空写下了这个,所以我没有机会测试它,但理论上它应该有效。
| 归档时间: |
|
| 查看次数: |
4540 次 |
| 最近记录: |