在應用程序運行時,我按HOME按鈕關閉應用程序。當我再次啓動應用程序,它恢復或不重新設置一些值,例如我使用initTTS()這是文本到語音當我再次啓動應用程序時,我聽到一些演講,像他記得最後一個動作,當我發生關閉並在Android設備上啓動應用程序,如果我從我的設備從android-stido啓動應用程序它從一開始就像一切都開始復位我想知道爲什麼當我從設備關閉我的應用程序,並再次啓動它記得一些最後的行動。我希望應用程序以初始設置開始。我使用完成()完成活動,但它不工作。有任何想法嗎 ?如何銷燬Android中的活動並從初始設置開始?
例如,這我在MainActivity的頂部:
public class MainActivity extends ActionBarActivity
{
private static final int MY_DATA_CHECK_CODE = 0;
TextToSpeech mTts;
private String targetURL;
private String urlParameters;
private Button btnClick;
private String clicking = "clicked";
private String[] ipaddresses = new String[]{
"http://192.168.1.5:8098/?cmd=nothing"};
private String iptouse = "";
private TextView text;
private boolean connectedtoipsuccess = false;
private int counter = 0;
private NotificationCompat.Builder mbuilder;
private Timer timer = new Timer();
private TextView text1, text2, text3;
private Button startButton;
private Button pauseButton;
private TextView timerValue;
private long startTime = 0L;
private Handler customHandler;
long timeSwapBuff = 0L;
private int servercheckCounter = 0;
private byte[] checkServer = null;
private boolean connectedSuccess = false;
private TextView status, status1;
private TextView uploadedfilescount;
private int numberofuploadedfilescounter = 0;
String a = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
startTime = SystemClock.uptimeMillis();
serverChecksThread.start();
status1 = (TextView) findViewById(R.id.textView3);
timerValue = (TextView) findViewById(R.id.timerValue);
uploadedfilescount = (TextView) findViewById(R.id.numberofuploadedFiles);
uploadedfilescount.setText("Uploaded Files: 0")
addListenerOnButton();
initTTS();
}
這是解決方案的樣品我看到:
public class MyRootActivity extends Activity
{
private static final String TAG=MyRootActivity.class.getName();
private static ArrayList<Activity> activities=new ArrayList<Activity>();
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
activities.add(this);
}
@Override
public void onDestroy()
{
super.onDestroy();
activities.remove(this);
}
public static void finishAll()
{
for(Activity activity:activities)
activity.finish();
}
}
名言:「對於所有的活動都需要有孩子的MyRootActivity。
然後當你要確定你正在關閉你的應用程序 - 只需調用MyRootActivity.finishAll();「
我不明白如何以及在哪裏將此活動植入到我的MainActivity中。 如何確認(知道)何時關閉我的應用程序? 我在哪裏調用MyRootActivity.finishAll(); ?
我不明白我把Intent實例行和addFlags行放在哪裏。我現在所做的就是在MainActivity繼承ActionBarActivity行之後添加實例行,然後在setContentView(R.layout.activity_main)行後面的onCreate中添加intent.addFlags行。但是這會讓我的程序崩潰。所以我想我沒有在當前的地方添加這行。 –
只需在清單中添加android:noHistory = true,即可在其中聲明您的活動。 – abhishesh