标签: back-stack

如何从状态栏中单击通知项时清除后堆栈活动?

我正在做一个聊天项目.当从GCM收到推送通知时,我需要导航到聊天联系人列表并清除以前打开的应用程序活动.

android back-stack

3
推荐指数
1
解决办法
1963
查看次数

从BackStack中删除活动(Flag_Activity_no_history)不起作用

我的MainActivity中有一个"开始"按钮.如果我单击此按钮,我将转到下一个活动(InfoActivity).现在,如果我点击按钮,我想从BackStack中删除MainActivity.我试过这个:

View.OnClickListener startButtonListener = new View.OnClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, InfoActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
        startActivity(intent);
    }
};
Run Code Online (Sandbox Code Playgroud)

但是这不会从BackStack中删除MainActivity,它会从BackStack中删除InfoActivity.

我知道我可以将标志插入AndroidManifest.但这对我来说是不可能的,因为如果我从MainActivity转到PreferencesActivity并使用AndroidManifest中的标志,那么如果我从PreferencesActivity返回到MainActivity,则会删除MainActivity.

所以我想从BackStack中删除MainActivity,如果我点击按钮Start.

java android android-activity back-stack

3
推荐指数
1
解决办法
4905
查看次数

android中的最大BackStack大小

我是android开发的新手.我需要知道的最大内存大小堆栈中机器人
,我想知道有多少活动Android应用程序可以被存储在堆栈中

谢谢

android java-memory-model back-stack

2
推荐指数
1
解决办法
1666
查看次数

Android AccountManager和登录活动

我使用AccountManager在我的应用程序中验证用户

我知道我可以调用getAuthTokenByFeatures,如果没有为我的特定accountType设置帐户,它会启动我的LoginActivity,这正是我想要的,

我有一个BaseActivity,它在onCreate方法上执行,但是在启动LoginActivity时,旧活动仍然在堆栈上,因此通过按后退按钮,用户可以返回到上一个活动是我不想要的行为,我在BaseActibity.onCreate上的代码如下

    AccountManager manager = AccountManager.get(getBaseContext());

    manager.getAuthTokenByFeatures(
            AccountGeneral.ACCOUNT_TYPE,
            AccountGeneral.AUTHTOKEN_TYPE_FULL_ACCESS,
            null,
            this,
            null,
            null,
            new AccountManagerCallback<Bundle>() {
                @Override
                public void run(AccountManagerFuture<Bundle> future) {
                    Bundle bnd = null;
                    try {
                        bnd = future.getResult();
                        final String authtoken = bnd.getString(AccountManager.KEY_AUTHTOKEN);

                        LOGV(TAG, "GetTokenForAccount Bundle is " + bnd);

                    } catch (Exception e) {
                        LOGE(TAG, "exception while getAuthTokenByFeatures", e);
                    }
                }
            }
            , null);
Run Code Online (Sandbox Code Playgroud)

问题是:如何禁用该返回行为?如果是我以编程方式调用LoginActivity,我只需在BaseActivity上调用finish()

authentication android back-stack

2
推荐指数
1
解决办法
1509
查看次数

从BackStack返回后,ListFragment加载空列表

这是我在同一件事上的第二篇文章,我还在等人指导我.我面临的问题可能非常简单,简而言之,我有这个ListFragment填充列表调用webservice,这很好.当用户选择任何项目时,我替换另一个片段并将其添加到BackStack

问题从这里开始,它弹出ListFragment但它总是空的或空白.但我已经以各种可能的方式检查了日志,发现数据存在,出于某种原因,列表保持空白.请帮帮我一个人......

在我使用的MainActivity中DrawerItemCustomAdapter,这就是我替换片段的方式

private void selectItem(int position) {

    android.support.v4.app.Fragment fragment = null;

    switch (position) {
    case 0:
    {
        fragment = new EventFragment();
    }
        break;
    case 1:
        fragment = new ScheduleFragment();
        break;
    case 2:
        fragment = new NewsFragment();
        break;
    case 3:
        fragment = new TeamFragment();
        break;
    case 4:
        fragment = new VenueFragment();
        break;
    case 5:
        fragment = new NewsFragment();
        break;

    default:
        break;
    }

    if (fragment != null) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-listfragment back-stack android-nested-fragment

2
推荐指数
1
解决办法
2181
查看次数

Android back stack - 返回到back stack中的某个activity

我有活动 A -> B -> C -> D。如何从活动 D 中打开现有的 B,清除 C 和 D?我最终会得到 A -> B。我不想重新创建一个新的 B。

android android-intent back-stack

2
推荐指数
1
解决办法
1508
查看次数

Android - 如何检测堆栈中的最终Activity

我使用下面的代码检查最后Fragment一个Activity以弹出一个对话框

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        // Check if there is only one fragment
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            if (getSupportFragmentManager().getBackStackEntryCount() == 1) {
                DlgUniversalError.shallIQuit(this, getApplicationContext()
                        .getResources().getString(R.string.doYouWantToQuit),
                        getSupportFragmentManager());
                return false;
            }
        }
        return super.onKeyDown(keyCode, event);
    }
Run Code Online (Sandbox Code Playgroud)

现在假设我有一套Activitys.如何Activity判断Activity堆栈中是否为最后一个,并弹出退出对话框?

android android-lifecycle android-activity back-stack android-task

2
推荐指数
1
解决办法
3467
查看次数

将 Fragment 添加到后堆栈(在后压时出现空白屏幕)

我有两个片段,第一个称为 Summer Jobs Fragment,其中包含项目列表,第二个称为 Summer Jobs Details Fragment,其中包含每个项目的详细信息。我试图设置回溯,以便当我从 Summer Jobs Detail Fragment 按下后退按钮时,我会回到 Summer Jobs Fragment。

这是我从 SJF 到 SJDF 初始转换的代码:

public void onItemClick(
                    AdapterView<?>parent,View view, int position, long id) {

                SummerJobDetailsFragment.mMyAppsBundle.
                        putInt("value", position);
                SummerJobDetailsFragment fragment =
                        new SummerJobDetailsFragment();
                FragmentManager fragmentManager =
                        getFragmentManager();
                list.setVisibility(parent.INVISIBLE);
                fragmentManager.beginTransaction().replace(R.id.displayjobs_detailed, fragment).
                        addToBackStack( "tag" ).commit();

            }
Run Code Online (Sandbox Code Playgroud)

这是我在主文件中修改 OnBackPressed() 的方法:

public void onBackPressed() {
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        if (getFragmentManager().getBackStackEntryCount() > 0 ) {
            getFragmentManager().popBackStack();

        } else {
            super.onBackPressed();

        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我从 SJDF 按下返回键时,我得到一个空白屏幕:

列表查看详情 按回后

android android-fragments back-stack

2
推荐指数
1
解决办法
2253
查看次数

同一应用程序的任务管理器中的两项活动

我的应用程序有两个活动,说MainActivitySecondActivity。主要活动被声明为,android:launchMode="singleInstance"并且其方向始终为portrait。第二项活动总是有landscape方向的。

在某些设备中,一切正常,在任务管理器中只有一个应用程序实例,但是在某些设备(例如Samsung S7)中,当我启动时SecondActivity,在任务管理器中将有两个应用程序实例,如下图所示:

在此处输入图片说明

我的猜测是,什么是错用launchModeMainActivty,但我需要它singleInstance。有什么建议吗?

编辑:

清单中的MainActivity:

<activity
    android:name=".Activities.MainActivity"
    android:screenOrientation="portrait"
    android:launchMode="singleInstance"
    android:theme="@style/AppTheme"
    android:windowSoftInputMode="adjustPan">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

第二:

<activity
    android:name=".Activities.SecondActivity"
    android:screenOrientation="landscape" />
Run Code Online (Sandbox Code Playgroud)

启动代码:

Intent intent = new Intent(getActivity(),  
intent.putExtra("VideoUri", filmGet.getOutput().getData().getFilmTrailer());
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

如果有帮助,我SecondActivity将从片段开始。

android android-activity back-stack

2
推荐指数
1
解决办法
1246
查看次数

Android:将结果发送到清理BackStack顶部的Activity

我有3个活动:A,B,C.

我希望活动的工作方式如下:

一个startActivityForResult B; B可以启动C或将结果发送给A; C可以返回B或将结果发送给A.

当B将结果发送给A时,必须从Backstack中删除B. 当C将结果发送到A时,必须从Backstack中删除B和C.

我无法从C向A发送结果.这意味着A必须重新发送(未重新发送),并且必须调用onActivityResult()来处理结果:

我已尝试使用此代码,但重新创建了A并且未调用onActivityResult()!

public class C extends Activity{
    sendResultToA(){
        Intent i = new Intent(getActivity(), A.class);
        i.putExtra("dataBean", dataBean);
        i.putExtra("args", "save");
        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        getActivity().setResult(Activity.RESULT_OK, i);
        startActivity(i);
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么想法可以解决这个问题?谢谢

android android-activity back-stack

1
推荐指数
1
解决办法
457
查看次数