Re: Урок 100. Service. IntentService. Foreground. Автозагруз
Добавлено: 24 авг 2015, 11:46
mkw, к сожалению, это тоже не сработало
Добро пожаловать на форум сайта
http://forum.startandroid.ru/
Код: Выделить всё
startService(intent.putExtra("time", 1).putExtra("label", "Call 2"));
1. методы пишутся с маленькой буквыChvalov писал(а):Как можно отправить задачу по нажатии кнопки, а не в onCreate ?
Допустим в OnClick_On1 выполнить[syntax=java]public class MainActivity extends AppCompatActivity {Код: Выделить всё
startService(intent.putExtra("time", 1).putExtra("label", "Call 2"));
TextView TV_Errors, TV_Otvet;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TV_Errors = (TextView) findViewById(R.id.TV_Errors);
TV_Otvet = (TextView) findViewById(R.id.TV_Otvet);
Intent intent = new Intent(this, SendWriteDataIntentService.class); //Инициализация сервиса
startService(intent.putExtra("time", 3).putExtra("label", "Call 1"));
startService(intent.putExtra("time", 1).putExtra("label", "Call 2"));
startService(intent.putExtra("time", 4).putExtra("label", "Call 3"));
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void OnClick_On1(View view) {
}
public void OnClick_On2(View view){
}
public void OnClick_On3(View view){
}
public void OnClick_Exit(View view){
finish();
}
}[/syntax]
это глюк Андроид Студио, у них по этому поводу открыт тикет, но пока что-то не фиксят.Mkay писал(а):Нашел причину, странноватая она оказалась. Эта строчка оказалась неработающей:
<uses-permission android:name="ANDROID.PERMISSION.RECEIVE_BOOT_COMPLETED" />
Как только я исправил ее на
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
всё сразу заработало.
Странно, подумал я, ведь, можно сказать, я вручную почти и не писал этот permission, а всего лишь начал писать "BOO", потом нажал Enter на первом предложенном варианте, после чего Android Studio (v1.3.1) услужливо дописал за меня "ANDROID.PERMISSION.RECEIVE_BOOT_COMPLETED". Сегодня, когда я, наконец, каким-то чудом нашел причину проблемы, то решил попробовать начать писать не "BOO", а "boo". Строка после нажатия Enter стала выглядеть вот так: "android.permission.RECEIVE_BOOT_COMPLETED". Такие дела. Как обычно, смог проверить на Android 4.0.4 и 4.2.2.
Не знаю, проявляет ли себя эта проблема у кого-нибудь еще, но мне она стоила трех потерянных дней и почти всех волос на заднице.
Mikhail_dev, спасибо за информацию насчет QUICKBOOT_POWERON, буду теперь знать. Такой вопрос вдогонку, может ли ресивер за одну загрузку поймать и BOOT_COMPLETED, и QUICKBOOT_POWERON? Или система при загрузке отсылает что-то одно из этого? То есть, имеет ли смысл что-то предпринимать, чтобы ресивер не выполнил onRecieve() два раза?