Страница 5 из 5

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 24 авг 2015, 11:46
Mkay
mkw, к сожалению, это тоже не сработало :(

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 24 авг 2015, 11:59
Mikhail_dev
Не знаю, прошлый вариант по мне рабочий. У нас почти такой же, рабочий
[syntax=xml]
<application
... >
<receiver
android:name=".MyBootReceiver"
android:enabled="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
[/syntax]
Стоять это должно в теге application!

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 24 авг 2015, 16:58
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() два раза?

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 25 сен 2015, 11:52
Chvalov
Как можно отправить задачу по нажатии кнопки, а не в onCreate ?

Допустим в OnClick_On1 выполнить

Код: Выделить всё

startService(intent.putExtra("time", 1).putExtra("label", "Call 2"));
[syntax=java]public class MainActivity extends AppCompatActivity {
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]

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 25 сен 2015, 18:03
Kirill
Chvalov писал(а):Как можно отправить задачу по нажатии кнопки, а не в onCreate ?

Допустим в OnClick_On1 выполнить

Код: Выделить всё

startService(intent.putExtra("time", 1).putExtra("label", "Call 2"));
[syntax=java]public class MainActivity extends AppCompatActivity {
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]
1. методы пишутся с маленькой буквы
2. Урок 9. Обработчики событий на примере Button.

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 25 сен 2015, 18:06
Kirill
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() два раза?
это глюк Андроид Студио, у них по этому поводу открыт тикет, но пока что-то не фиксят.
Автодополнение начатое с больших букв дополнняет всю строку большими буквами. Это первый косяк.
А второй это что в манифесте такие имена из одних заглавных валидатор пропускает и не видит, хотя они не валидные.

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 31 мар 2018, 10:31
Pavel_PSS
Привет, спасибо за уроки. Кто нить может помочь, этой мой проект в андройд студии https://yadi.sk/d/vpGbyS0E3Tw3Fv пытаюсь сделать сервис который продолжал работать после закрытия (удаление из памяти) основной программы. Сервис показывает статус батареи. Перепробовал кучу вариантов, но сервис все равно тоже отключается. Нужно чтобы он работал, оставался включенным и если видел что само приложение закрылось его открывал заново. Если можете поправьте мой код

Re: Урок 100. Service. IntentService. Foreground. Автозагруз

Добавлено: 30 апр 2018, 22:14
olelukoe
похоже, что ктото у когото чтото спёр....
http://developer.alexanderklimov.ru/and ... ervice.php