小编Ash*_*kla的帖子

launchMode ="singleTask"不会创建新任务

我有2个活动:活动A和活动B.活动A的启动模式是标准的,活动B的启动模式是singleTask.

 <activity
    android:name=".AActivity"
    android:label="@string/app_name"
    android:launchMode="standard">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="dd"></data>
        <data android:host="a"></data>
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>
<activity
    android:name=".BActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="dd"></data>
        <data android:host="b"></data>
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

我启动了应用程序,启动器启动了活动A. 然后我按下主页按钮并返回到手机的主屏幕.然后我启动浏览器应用程序并输入以下内容:

dd://b
Run Code Online (Sandbox Code Playgroud)

打开活动B.系统导航到我的应用程序并在活动A之上启动活动B.此时,如果我按回按钮,活动B将弹出,我看到活动A.

这不是我所期望的,因为android文档说明:

对于singleTask活动,系统会创建新任务并在新任务的根目录下实例化活动.但是,如果活动的实例已存在于单独的任务中,则系统会通过调用其onNewIntent()方法将意图路由到现有实例,而不是创建新实例.一次只能存在一个活动实例.

我从这些句子中理解的是,在我的情况下,因为活动B的实例不存在,所以应该启动一个新任务,它应该只有活动B在它的堆栈(我的应用程序的另一个实例应该仍然存在于单独的任务,它的堆栈中应该有活动A. 然后,如果我在活动B时按回,因为它是后台堆栈中的唯一活动,它会弹出并且系统返回到浏览器.

为什么不是这样的?android系统如何知道我的应用程序是打开并导航到它并在现有应用程序堆栈上启动活动B而不是启动我的应用程序的另一个实例并让我的应用程序的两个实例拥有自己的堆栈?在新任务中实例化活动意味着什么?谁能解释一下?

谢谢.

android android-intent android-task

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

带有startManagingCursor()的CursorLoader

我在我的App中使用CursorLoader进行数据库事务.

我的应用程序也有调用startManagingCursor()的方法,该方法已被弃用.

我只是想替换这个方法调用,所以我该怎么做?

android android-cursorloader

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

Gridview未正确显示为Listview的标题

我想要实现Fig-1,但我被图2困,并且无法将完整的gridview视为Listview的标题.

在此输入图像描述

正如您所看到的,gridview未完全显示并隐藏在图2中的Listview后面

Gridview xml:

<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<GridView
    android:id="@+id/gridview"
    android:numColumns="2"
    android:stretchMode="columnWidth"
    android:cacheColorHint="#ffffffff"
    android:gravity="center"
    android:verticalSpacing="5dp"
    android:horizontalSpacing="5dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

Listview xml:

 <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android" >

<ListView
    android:id="@+id/listview"
    android:scrollbars="vertical"
    android:background="#fff"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

</ListView>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

片段代码:

 @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {


    view=inflater.inflate(R.layout.fragmentpage_layout, null);

    listView=(ListView)view.findViewById(R.id.listview);

    header=inflater.inflate(R.layout.gridview_layout,null);

    gridView=(GridView)header.findViewById(R.id.gridview);
    listView.addHeaderView(header);
    gridViewAdapter=new CustomGridViewAdapter(getActivity(),images,toptexts, bottomtexts);
    listViewAdapter=new CustomListViewAdapter(getActivity(),images,toptexts,bottomtexts);

    gridView.setAdapter(gridViewAdapter);

    listView.setAdapter(listViewAdapter);


   return view;
}
Run Code Online (Sandbox Code Playgroud)

提前致谢.

android listview android-gridview

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

Android登录Facebook时出现SSL错误

我正在我的应用程序中实现Facebook登录,但它不适用于Api 2.3.6

我已经在模拟器中测试了应用程序,并且它的工作状态为Api 23

它也在使用API​​ 21的Device中工作,但在2.3.6中没有

错误与SSL有关

Bcoz我在SO回答中读过,

  • 在Api级别2.3.6中,所有连接和授权仅由HTTPS处理,而在Api级别高于2.3.6时,它不是执行每项任务的HTTPS

  • 此外,我注意到,每当我尝试调用
    HTTPS开头的任何URL时,它都不会给出最终结果,但会像Googles Direction Api那样静默停止.

下面是我在2.3.6中获得的StackTrace:

 V/webkit: LoadListener.handleSslErrorRequest():   
  url:https://m.facebook.com/v2.4/dialog/oauth?
    return_scopes=true&response_type=token%2Csigned_request&redirect_uri
    =fbconnect%3A%2F%2Fsuccess&display=touch&sdk=android-  
    4.5.1&e2e=%7B%22init%22%1232%7D&client_id=1234&default_audience=friends   
    primary error: 3 certificate: Issued to: CN=*.facebook.com,O=Facebook\,  
    Inc.,L=Menlo Park,ST=CA,C=US;
    Issued by: 1.2.840.113549.1.9.1=#1223,CN=Cyberoam SSL  
    CA_C016700030,OU=Cyberoam Certificate 
    Authority,O=Elitecore,L=Ahmedabad,ST=Gujarat,C=IN;

    I/System.out: close [socket][/0.0.0.0:52994]
    I/webkit/webview: WebView.stopLoading()
    D/webkit/webview: WebView.stopLoading(): webcorethread is initialized
    I/webkit/webview: WebView.stopLoading()
    D/webkit/webview: WebView.stopLoading(): webcorethread is initialized
    W/System.err:     at    
    com.facebook.login.LoginManager.onActivityResult(LoginManager.java:173)
    W/System.err:  at     
    com.facebook.login.LoginManager$1.onActivityResult(LoginManager.java:139)
    W/System.err:     at    
    com.facebook.internal.CallbackManagerImpl.onActivityResult
    (CallbackManagerImpl.java:82)
    W/System.err:     at     
    com.hogo.integrationapp.FirstActivity.onActivityResult
    (FirstActivity.java:179)
    W/System.err:     at   
    android.app.Activity.dispatchActivityResult(Activity.java:3975)
    W/System.err:     at 
    android.app.ActivityThread.deliverResults(ActivityThread.java:2629)
    W/System.err:     at …
Run Code Online (Sandbox Code Playgroud)

ssl android facebook-login android-studio

5
推荐指数
0
解决办法
627
查看次数

Android CheckBox onClickListener不起作用

可能是这个重复的问题,但我没有找到答案.

ClickListenerCheckBox不行.

这个xml:

<CheckBox
            android:id="@+id/checkbox_visibility"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="@dimen/mat_card_padding"/>
Run Code Online (Sandbox Code Playgroud)

来自Activity的代码:

        mVisibilityCheckBox = (CheckBox) findViewById(R.id.checkbox_visibility);
        mVisibilityCheckBox.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // this method doesn't call
                    Toast.makeText(SettingsActivity.this, "isChecked - " + mVisibilityCheckBox.isChecked(), Toast.LENGTH_SHORT).show();
                }
            });
Run Code Online (Sandbox Code Playgroud)

UPD我从答案添加代码 - 但这对我不起作用(

mVisibilityCheckBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (isChecked) {
                // this doesn't work
                Toast.makeText(SettingsActivity.this, "isChecked - " + mVisibilityCheckBox.isChecked(), Toast.LENGTH_SHORT).show();
            }

        }
    });
Run Code Online (Sandbox Code Playgroud)

checkbox android

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