При запуске действия, т. Е. На onCreate, добавьте следующий код.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MediaPlayer mPlayer = MediaPlayer.create(FakeCallScreen.this, R.raw.mysoundfile);
mPlayer.start();
}
При остановке действия, т. Е. На onDestroy, добавьте следующий код.
public void onDestroy() {
mPlayer.stop();
super.onDestroy();
}
Надеюсь, это поможет:)
Я бы предпочел передать экземпляр Random
в метод - тогда вы можете повторно использовать один и тот же экземпляр несколько раз, что важно, если вам нужно сгенерировать много случайных строки в быстрой последовательности. Тем не менее, я бы все равно несколько изменил его:
public const string LowerCaseAlphabet = "abcdefghijklmnopqrstuvwyxz";
public const string UpperCaseAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static string GenerateUpperCaseString(int size, Random rng)
{
return GenerateString(size, rng, UpperCaseAlphabet);
}
public static string GenerateLowerCaseString(int size, Random rng)
{
return GenerateString(size, rng, LowerCaseAlphabet);
}
public static string GenerateString(int size, Random rng, string alphabet)
{
char[] chars = new char[size];
for (int i=0; i < size; i++)
{
chars[i] = alphabet[rng.Next(alphabet.Length)];
}
return new string(chars);
}
Random.NextDouble ()
указывает на отсутствие знаний о Random класс. (В частности, Random.Next (int, int)
Если бы я сделал это (а я сделал это, но где-то в Java, я бы предоставил массив допустимых символов и использовал бы ГСЧ просто для выбора индекса символа. Это также позволит вам запретить символы, которые вы не хотите создавать (если вы создаете вводимый человеком лицензионный ключ, вы не хотите создавать символы, которые можно спутать друг с другом; например, 0 и O, или 1 и 1).
РЕДАКТИРОВАТЬ : да, как то, что сделал Джон ...