У меня есть 2 активности (FirstActivity и SecondAcitivity) Содержимое FirstActivity EditText и Button Я хочу уничтожить firstActivity, когда пользователь нажимает на кнопку и запускает Secondactivity после времени, введенного в EditTextКак показать активность по истечении определенного периода времени
ответ
Im предполагаю, что Вы также получили mainactivity или homeactivity? если так что вы могли бы сделать следующее, чтобы получить нужный результат:() метод
в вашем firstactivity OnCreate:
Button mButton = (Button)findViewById(R.id.TestButton);
final EditText mEditText = (EditText)findViewById(R.id.TestTextBox);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int time = Integer.parseInt(mEditText.getText().toString());
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("Time", time);
startActivity(intent);
}
});
чем в OnCreate() метод место вашего mainactivity в следующем:
if (getIntent().getIntExtra("Time", 0) > 0) {
int time = getIntent().getIntExtra("Time" , 0);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivity(intent);
finish();
}
}, time * 1000);
}
EDIT: (если вы не имеете MainActivity)
первый: зарегистрировать повторно синонимов употребляются в XML
<receiver android:name=".AlarmReceiver"/>
Создать AlarmReceiver класса
package (your package)
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "Alarm time reached", Toast.LENGTH_SHORT).show();
Intent i = new Intent();
i.setClassName("(your package name)", "(your package name.SecondActivity)");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
В OnCreate метода вашего FirstActivity в:
Button mButton = (Button)findViewById(R.id.TestButton);
final EditText mEditText = (EditText)findViewById(R.id.TestTextBox);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int time = Integer.parseInt(mEditText.getText().toString());
if(time > 0) {
Intent myIntent = new Intent(getBaseContext(), AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), 0, myIntent, 0);
AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, time);
alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(getApplicationContext(), "Starting Activity in: " + time + " seconds", Toast.LENGTH_SHORT).show();
finish();
}
}
});
Надеются, что это помогает вам;)
PS: о Попутно образ между действиями, которые вы могли бы попробуйте следующее: Сначала объявить растровое изображение в верхней части вашей деятельности:
private Intent myIntent;
добавить следующий код к методу OnCreate в вашем FirstActivity
myIntent = new Intent(FirstActivity.this, AlarmReceiver.class);
и добавьте ниже bitmap = BitmapFactory.decodeFile(f.getAbsolutePath(), bitmapOptions);
следующее:
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
myIntent.putExtra("SendImage", byteArray);
и добавить ниже Bitmap thumbnail = (BitmapFactory.decodeFile(picturePath));
ByteArrayOutputStream stream = new ByteArrayOutputStream();
thumbnail.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] byteArray = stream.toByteArray();
myIntent.putExtra("SendImage", byteArray);
, а затем в вашем AlarmReceiver
byte[] mByteArray = intent.getByteArrayExtra("SendImage") //above Intent i = new Intent();
i.putExtra("Image", mByteArray); //above context.startActivity(i);
и в вашем SecondActivity
byte[] mByteArray= getIntent().getByteArrayExtra("Image");
if(mByteArray != null){
Bitmap mBitmap = BitmapFactory.decodeByteArray(mByteArray, 0, mByteArray.length);
mTestImage.setImageBitmap(mBitmap); //Your imageview
}
Не думаю, что это лучшее решение, но я испытал это, и она работала;)
Комментарии не предназначены для расширенного обсуждения; этот разговор был [перемещен в чат] (http://chat.stackoverflow.com/rooms/75226/discussion-on-answer-by-strider-how-to-display-an-activity-after-certain-time- ре). – Taryn
Используйте CountDownTimer:
String text = editText.getText().toString();
int time = Integer.parseInt(text);//in seconds
time = time * 1000;
new CountDownTimer(time, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
Intent i = new Intent(this, SecondActivity.class);
startActivity(i);
}
}.start();
положить это в OnClick, поэтому реализовать View.OnClickListener и добавить этот код:
public void onClick(View view) {
if (view.getId() == R.id.button1) {
//countdown code
}
}
Мне нужно применить это, когда пользователь нажимает кнопку button1? Как я могу установить этот код в Onclick? –
взгляните на мое редактирование – IntegralOfTan
@IntergralOfTan спасибо, но я хочу немедленно уничтожить firstActivity и вернуться домой .. после введенного времени Начать второе действие –
в OnCreate
Button myBtn = (Button)findViewById(R.id.YourBtnId);
final EditText myEditText = (EditText)findViewById(R.id.YourEditTextId);
myBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int time = Integer.parseInt(myEditText.getText().toString());
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent startActivity = new Intent(FirstActivity.this, SecondAcitivity.class);
startActivity(startActivity);
finish();
}
}, time * 1000);
}
});
спасибо, но мне нужно применить это, когда пользователь нажимает кнопку button1? –
@HassanEchafaii См. Обновление. –
Я получаю ошибку в Handle() «Обработчик» является абстрактным, не может быть создан. –
- 1. Переключение по истечении определенного периода времени
- 2. изменение активности по истечении определенного периода времени
- 3. Таймер остановки по истечении определенного периода времени
- 4. Как изменить цвет текста по истечении определенного периода времени?
- 5. Удаление записи по истечении определенного периода времени или по истечении заданного времени автоматически в Java
- 6. Единство. Вызов функции по истечении определенного периода времени
- 7. Очистка NSUserDefaults по истечении определенного периода времени iPhone
- 8. Сброс счетчика в ESPER по истечении определенного периода времени
- 9. Jquery: Mouseover срабатывает по истечении определенного периода времени
- 10. Выполнение функции по истечении определенного периода времени в Javascript
- 11. Установка автоматического удаления электронной почты по истечении определенного периода времени
- 12. Прерывание неизвестной долговременной функции по истечении определенного периода времени
- 13. Ожидайте активность в течение определенного периода времени
- 14. Как приостановить таймер по истечении определенного времени
- 15. Как остановить видео после определенного периода времени?
- 16. данных Удаление Firebase по истечении определенного времени
- 17. Показать/скрыть кнопку после определенного периода времени
- 18. Функция вызова по истечении определенного времени
- 19. Обновление textView по истечении определенного времени
- 20. Закрыть или отменить диалог MFC по истечении заданного периода времени
- 21. Как убить команду по истечении определенного периода времени в командной строке, даже если она запущена.
- 22. Как изменить временные метки, сгенерированные функцией NOW(), в даты по истечении определенного периода времени
- 23. Как я могу отправить автоматическое письмо по истечении определенного периода времени (поле mySQL datetime)?
- 24. Автоматически обновлять скрипт Google Apps по истечении заданного периода времени
- 25. Автоматическое удаление/истечение лазурных пятен по истечении периода времени
- 26. Загрузка изображения определенного периода времени
- 27. Продолжайте, если текущее время находится в пределах 15-минутного периода по истечении определенного времени
- 28. создать задачу для запуска по истечении определенного периода времени в приложении?
- 29. Изменение значения mysql по истечении определенного периода времени и/или строк?
- 30. Выполнение точной функции по таймеру по истечении определенного времени
Даже у вас много ответа, но мне любопытно узнать, что вы пытаетесь решить вашу проблему. Можете ли вы разместить здесь какой-нибудь код? – DJhon