Вы должны поместить Thread.sleep(long) перед «setContentView (R.layout.xxxx ..)» в функции onCreate (..). Таким образом, он будет фактически задерживаться, прежде чем показывать вам элементы Activity.
Если вы хотите задержать еще до OnCreate (...) обжигают, подход должен будет отличаться, вот одно предложение:
Запуск службы и проверьте, переднего плана приложения, используя класс ActivityManager (см. пример кода ниже). Продолжайте проверять, когда ваше приложение запущено или выведено на передний план (используя код ниже), а затем просто вернитесь на рабочий стол & запустите таймер (в самом сервисе). По истечении таймера запустите приложение.
Вы можете запустить функцию ниже внутри AsyncTask в Сервисе.
Эти два подхода совершенно разные и действительно зависят от того, что вы ищете для достижения именно этого.
@SuppressWarnings("deprecation")
private void getRunningAppName() throws NameNotFoundException {
Log.v("neiltag", "Entered getRunningAppName()");
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// The first in the list of RunningTasks is always the foreground task.
RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0);
String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName();
PackageManager pm = this.getPackageManager();
PackageInfo foregroundAppPackageInfo = pm.getPackageInfo(foregroundTaskPackageName, 0);
String foregroundTaskAppName = foregroundAppPackageInfo.applicationInfo.loadLabel(pm).toString();
String packageName = foregroundAppPackageInfo.packageName;
if(foregroundTaskAppName.matches("<NAME OF YOUR APP HERE>")) {
//If your app is fired go back to the Homescreen(i.e. the delay)
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(), "You are not allowed to open Facbeook now, sorry!", Toast.LENGTH_SHORT).show();
}
});
}
//ADD A TIMER HERE
//ONCE TIMER EXPIRES, FIRE UP YOUR APP AGAIN
}
возможно дубликат [Как установить задержку функции Android OnClick] (http://stackoverflow.com/questions/4199191/how-to-set-delay-in-android-onclick-function) –
@ Мартин Динов: Я не хочу задерживать функцию onClick, мне нужна задержка при запуске активности. Я проверил все эти вопросы и ** Ни один из них не работал:] – ShaPesar
Привет, почему вы хотели бы отложить начало активности? это решение любой другой проблемы? – KLiFF