Как бомбить приложение для Android?

Здравствуйте, есть ли у кого-нибудь пример кода, как я могу бомбить приложение Android, чтобы оно не работало после указанной даты?

Я хотел бы выпустить «бета-версию» приложения для тестирования, но хотел бы убедиться, что оно будет работать только тогда, когда приложение официально находится в стадии бета-тестирования.


person Tom    schedule 03.08.2009    source источник
comment
Я думаю, что здесь уже дан ответ: http://stackoverflow.com/questions/995719/android-trial-applications Ну, не с примерами кода   -  person Tommy    schedule 03.08.2009


Ответы (2)


Я бы предложил использовать класс Calendar, чтобы ваше приложение проверяло текущую дату по сравнению с датой истечения срока действия в ваших OnResume(s).

Код будет выглядеть примерно так:

    protected void onResume()
    {   
        super.onResume();

        Calendar expirationDate = Calendar.getInstance();
        expirationDate.set(2009, 7, 3);  //hardcoded expiration date
        Calendar t = Calendar.getInstance();  //Calendar with current time/date
        if (t.compareTo(expirationDate) == 1)
           finish();
    }
person Will    schedule 04.08.2009
comment
Нумерация месяцев класса Java Calendar начинается с 0, а не с 1. - person Will; 29.08.2009
comment
Итак, 15 сентября будет: (2009, 8, 15) Думаю, это правильно. - person Tom; 29.08.2009
comment
Что, если пользователь изменит дату на прошлое? - person Guido; 20.03.2010
comment
@GuidoGarcía Смотрите 3-й метод в этом ответе. stackoverflow.com/a/996288/957245 - person Declan McKenna; 23.02.2012
comment
Почему вы использовали onResume()? - person chia yongkang; 21.11.2019
comment
Если мне не изменяет память, есть определенный порядок вызова процедур. Теоретически приложение для Android никогда не может быть закрыто, поэтому OnStart() не подходит для проверки срока действия. OnResume() происходит всякий раз, когда вы переключаетесь на приложение, поэтому я уверен, что оно будет вызвано. Я не прикасался к программированию для Android около десяти лет, так что все могло измениться. - person Will; 23.11.2019

Также, в зависимости от вашего приложения, вы можете захотеть, чтобы вызов истечения срока действия вызывал веб-сервер, таким образом, если вы хотите продлить или изменить дату, он будет динамическим и не приведет к преждевременному истечению срока действия приложений. Просто мои 2 цента.

person broschb    schedule 04.08.2009
comment
Это было бы отличным решением. Я хотел бы сделать это, но я не уверен, как лучше всего программировать с помощью веб-серверов и Android. - person Tom; 05.08.2009
comment
@ Том, потому что это заноза в заднице. Найдите AsyncTask. - person Jeremy Logan; 05.08.2009
comment
Это на самом деле довольно просто и прямолинейно. Я играл с этим и собираюсь написать об этом сообщение в блоге (broschb.blogspot.com) и обновить его, как только у меня будет. Но я использовал GoogleAppEngine и Restlet(restlet.org). Restlet имеет библиотеки для GAE и Android. С этим довольно просто получить что-то простое. В ближайшие дни постараюсь что-нибудь написать и отпишусь. - person broschb; 05.08.2009
comment
@broschb Это будет потрясающе. Я подумал, не было бы здорово использовать для такой системы AppEngine. - person Tom; 05.08.2009
comment
Я написал статью о настройке первой части с небольшим примером настройки движка приложения. Я постараюсь закончить вторую часть поста с интеграцией Android на этих выходных, а пока вы можете увидеть, как просто запустить GAE. Пост здесь. broschb.blogspot.com/2009/08/ - person broschb; 08.08.2009
comment
Я создал еще один дополнительный учебник, в котором показано, как связать все это вместе, вызвав приложение в GAE и получив дату истечения срока действия из Android. Вы можете увидеть это здесь broschb.blogspot.com/2009. /08/android-and-google-app-engine.html - person broschb; 14.08.2009