Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android错误活动在接收简单数据时打开(来自chrome的链接)_Android - Fatal编程技术网

Android错误活动在接收简单数据时打开(来自chrome的链接)

Android错误活动在接收简单数据时打开(来自chrome的链接),android,Android,所以这是我在网站上的第一个问题,希望我能清楚地表达自己,并提前感谢大家的帮助 我的应用程序假设从Chrome接收一个链接,但我想要一个特定的活动来接收intent,让我们称之为receive_url_活动。 此活动显示我拥有的项目的recyclerView,通过按其中一个项目,它将打开一个新的“活动管理”\u“项目”\u活动,显示此项目拥有的所有链接 现在,对于这个问题,当我第一次从chrome上共享链接时,它工作正常。当按下打开的一个项目时,我可以选择一个项目。单击“管理项目”活动并添加链接。

所以这是我在网站上的第一个问题,希望我能清楚地表达自己,并提前感谢大家的帮助

我的应用程序假设从Chrome接收一个链接,但我想要一个特定的活动来接收intent,让我们称之为receive_url_活动。 此活动显示我拥有的项目的recyclerView,通过按其中一个项目,它将打开一个新的“活动管理”\u“项目”\u活动,显示此项目拥有的所有链接

现在,对于这个问题,当我第一次从chrome上共享链接时,它工作正常。当按下打开的一个项目时,我可以选择一个项目。单击“管理项目”活动并添加链接。 但当我第二次尝试这样做时,它会打开我离开应用程序之前打开的最后一个活动,而不是我想要的活动

当我手动接收_url_活动并选择一个项目时,它会添加我第一次共享的链接,而不是我第二次尝试共享的链接

在我的清单中,我标记了我谈论的两项活动: `


}

因此代码中缺少两件事:

我将下一个标签添加到清单中的Receive_url_活动中,这一个似乎起到了作用 android:launchMode=singleTask,发现此网站解释了对活动生命周期的影响:

现在代码如下所示:

      <activity
        android:name=".Receive_Url_Activity"
        android:label="@string/title_activity_receive__url_"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
public class Receive_Url_Activity extends Activity {

private RecyclerView mRecyclerView;
private ProjectsRecyclerAdapter mAdapter;
private RecyclerView.LayoutManager mLayoutManager;
ProjectsList projects;
String sharedLink;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_receive__url_);
    manageActivity();
}


@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_receive__url_, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    //noinspection SimplifiableIfStatement
    if (id == R.id.action_settings) {
        return true;
    }

    return super.onOptionsItemSelected(item);
}

@Override
protected void onResume(){
    super.onResume();
}

public void manageActivity(){
    Intent intent=getIntent();
    sharedLink=intent.getStringExtra(Intent.EXTRA_TEXT);

    mRecyclerView = (RecyclerView)findViewById(R.id.receive_url_recycler);
    mRecyclerView.setHasFixedSize(true);
    mLayoutManager = new LinearLayoutManager(this);
    mRecyclerView.setLayoutManager(mLayoutManager);
    mAdapter = new ProjectsRecyclerAdapter();
    mRecyclerView.setAdapter(mAdapter);

    //set GestureDetector
    final GestureDetector mGestureDetector = new GestureDetector(Receive_Url_Activity.this, new GestureDetector.SimpleOnGestureListener() {

        @Override public boolean onSingleTapUp(MotionEvent e) {
            return true;
        }

    });

    mRecyclerView.addOnItemTouchListener(new RecyclerView.OnItemTouchListener() {
        @Override
        public boolean onInterceptTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {
            View child = recyclerView.findChildViewUnder(motionEvent.getX(),motionEvent.getY());

            if(child!=null && mGestureDetector.onTouchEvent(motionEvent)){
                int childNumber=recyclerView.getChildPosition(child);
                int flag=1;
                String link=sharedLink;
                Bundle extras=new Bundle();
                extras.putInt("CHILD_NUMBER",childNumber);
                extras.putInt("FLAG",flag);
                extras.putString("SHARED_LINK",link);
                Intent intent=new Intent(Receive_Url_Activity.this, project_manager_Activity.class);
                intent.putExtra("EXTRAS",extras);
                startActivity(intent);
                return true;
            }
            return false;
        }

        @Override
        public void onTouchEvent(RecyclerView recyclerView, MotionEvent motionEvent) {

        }
    });
}
      <activity
        android:name=".Receive_Url_Activity"
        android:label="@string/title_activity_receive__url_"
        android:launchMode="singleTask">
        <intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
protected void onNewIntent(Intent intent){
setIntent(intent);
manageActivity(intent);
}