У меня проблема с потоком моих действий. Поток выглядит следующим образом:Убить Android-активность с главной темой
Splash -> MainMenu -> Launching -> Starting -> Instructions -> MagicPower
так на активности MagicPower я хочу вернуться к MainMenu после некоторого сна() время! Проблема в том, что деятельность MainMenu не закончилась вообще и проявляется дважды в два раза. Как я могу решить эту проблему? Как я пытался в моем конце, как:
package com.app.imagic;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class MagicPower extends Activity {
///////////
private TextView lookme;
private volatile boolean running=true;
private int i;
private TextView gone;
///////////
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_magic_power);
lookme=(TextView)findViewById(R.id.LOOK);
lookme.setVisibility(View.INVISIBLE);
gone=(TextView)findViewById(R.id.GONE);
gone.setVisibility(View.INVISIBLE);
Typeface face=Typeface.createFromAsset(getAssets(), "fonts/crazy.TTF");
gone.setTypeface(face);
lookme.setTypeface(face);
//////////////////////////////////////////////////////////
runThread();
}
//////////////////////////////////////////////////////////////
private void runThread() {
new Thread() {
public void run() {
while(running){
while (i++ < 4) {
if(i==3){
Intent intent = new Intent(getApplicationContext(), MainMenu.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
startActivity(new Intent(MagicPower.this,MainMenu.class));
running=false;
finish();
break;
}
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
if(i==1){
lookme.setVisibility(View.VISIBLE);
}
if(i==2){
gone.setVisibility(View.VISIBLE);
}
}
});
Thread.sleep(2500);
} catch (InterruptedException e) {
e.printStackTrace();
return;
}
}
}
}
}.start();
}
///////////////////////////////////////////////////////////////////
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.magic_power, menu);
return true;
}
@Override
public void onBackPressed() {
// do nothing.
}
}
Это должно быть, как после MainMenu; активность MainMenu больше не должна появляться на экране! Пожалуйста, помогите мне заблаговременно
Я несколько предложений: 1. Вызвать 'послевкусие();' 4 раза в разных контекстах, чтобы вернуть вас в «MainMenu». 2. Назовите этот ключ KeyEvent k = new KeyEvent (KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK); Activity.dispatchKeyEvent (k); '- это соответствует нажатой задней клавише, но это по сути то же самое, что и вызов' finish(); '. – g00dy
Альтернатива всем этим - использовать флаг здесь -> http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_SINGLE_TOP – g00dy