Приложение Android перезагружается при открытии, нажав значок приложения

Я новичок в мире разработки Android, и я создал простое приложение Hello World. Во-первых, активность запрашивает текст. Когда нажата кнопка "Перейти", приложение запускает второе действие, отображающее текст ввода.

Если я нажму кнопку HOME, а затем щелкните значок приложения, приложение снова запустит первое действие, но если я нажму кнопку "домой" и нажмите значок на панели "Последние приложения", он возобновит приложение, где я влево.

Как этого избежать?

Мне нужно, чтобы мое приложение возобновилось, даже если щелкнули значок запуска.

MainActivity.java,

package com.example.myfirstandroidapp;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
public class MainActivity extends Activity {
 public final static String EXTRA_MESSAGE = "com.example.myfirstapp.MESSAGE";
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 ***************().inflate(R.menu.main, menu);
 return true;
 }
 /** Called when the user clicks the Send button */
 public void sendMessage(View view){
 // Do something in response to button
 Intent intent = new Intent(this, DisplayMessageActivity.class);
 EditText editText = (EditText) findViewById(R.id.txtName);
 String message = editText.getText().toString();
 intent.putExtra(EXTRA_MESSAGE, message);
 startActivity(intent);
 }
}

DisplayActivity.java,

package com.example.myfirstandroidapp;
import android.annotation.TargetApi;
import android.app.Activity;
import android.content.Intent;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.NavUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView;
public class DisplayMessageActivity extends Activity {
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 // Get the message from the intent
 Intent intent = getIntent();
 String message = intent.getStringExtra(MainActivity.EXTRA_MESSAGE);
 // Create the text view
 TextView textView = new TextView(this);
 textView.setTextSize(40);
 textView.setText(message);
 // Set the text view as the activity layout
 setContentView(textView);
 // Show the Up button in the action bar.
 setupActionBar();
 }
 /**
 * Set up the {@link android.app.ActionBar}, if the API is available.
 */
 @TargetApi(Build.VERSION_CODES.HONEYCOMB)
 private void setupActionBar() {
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
 getActionBar().setDisplayHomeAsUpEnabled(true);
 }
 }
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
 // Inflate the menu; this adds items to the action bar if it is present.
 ***************().inflate(R.menu.display_message, menu);
 return true;
 }
 @Override
 public void onDestroy(){
 super.onDestroy();
 }
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
 switch (item.getItemId()) {
 case android.R.id.home:
 // This ID represents the Home or Up button. In the case of this
 // activity, the Up button is shown. Use NavUtils to allow users
 // to navigate up one level in the application structure. For
 // more details, see the Navigation pattern on Android Design:
 //
 // http://developer.android.com/design/patterns/navigation.html#up-vs-back
 //
 NavUtils.navigateUpFromSameTask(this);
 return true;
 }
 return super.onOptionsItemSelected(item);
 }
}

activity_main.xml,

<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".MainActivity">
 <edittext android:id="@+id/txtName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margintop="70dp" android:ems="10">
 <requestfocus>
 </requestfocus></edittext>
 </relativelayout><button android:id="@+id/btnGo" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignbottom="@+id/txtName" android:layout_alignparentright="true" android:onclick="sendMessage" android:text="Go!"><code>
 <textview android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignleft="@+id/txtName" android:layout_alignparenttop="true" android:layout_margintop="18dp" android:text="Please input your name:" android:textappearance="?android:attr/textAppearanceMedium">
 
</textview></code>
<p>activity_display_message.xml,</p>
<pre class="prettyprint linenums"><relativelayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context=".DisplayMessageActivity">
 </relativelayout>

AndroidManifest.xml,

<!--?xml version="1.0" encoding="utf-8"?-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myfirstandroidapp" android:versioncode="1" android:versionname="1.0">
 <uses-sdk android:minsdkversion="9" android:targetsdkversion="10">
 <application android:allowbackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
 <activity android:name="com.example.myfirstandroidapp.MainActivity" android:label="@string/app_name">
 <intent-filter>
 <action android:name="android.intent.action.MAIN">
 <category android:name="android.intent.category.LAUNCHER">
 </category></action></intent-filter>
 </activity>
 <activity android:name="com.example.myfirstandroidapp.DisplayMessageActivity" android:label="@string/title_activity_display_message" android:parentactivityname="com.example.myfirstandroidapp.MainActivity">
 <meta-data android:name="android.support.PARENT_ACTIVITY" android:value="com.example.myfirstandroidapp.MainActivity">
 </meta-data></activity>
 </application>
</uses-sdk></manifest>
1 ответ

Проблема:

Я не могу сказать, что это ошибка, но при запуске приложения из запуска запускается поведение с версиями. Кажется, что вместо возобновления предыдущего действия он добавляет новую активность сверху. Существует связанный отчет об ошибке в этом разделе здесь.

Решение:

Я работаю над этим, закрывая Launcher Activity, если это не корень задачи, в результате предыдущая активность в этой задаче будет возобновлена.

if (!isTaskRoot()) {
 finish();
 return;
}

licensed under cc by-sa 3.0 with attribution.