Search code examples
androidservicestartup

app not running on startup with no error


this app will run on startup and monitor clipboard for changes and do somthings ;)

but it not run on startup :(

I search whole web for solution but I can't fix it.

This is AndroidManifest.xml content:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.TB.Zedit"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="19" />

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Light.NoTitleBar" >
    <activity
        android:name="com.TB.Zedit.ActMain"
        android:label="@string/app_name" >
        <intent-filter>

               <action android:name="android.intent.action.SEND" />

               <category android:name="android.intent.category.DEFAULT" />

               <data android:mimeType="text/*" />


        </intent-filter>
    </activity>

    <receiver android:name=".service_starter" android:enabled="true">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED"  />
        </intent-filter>
    </receiver>

<service android:name=".clipboard_monitor"></service>

</application>    

I want to my app run on startup and create a service but nothing happen

my app not run with no error; I'm really confused

this is my service_starter code

package com.TB.Zedit;

import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class service_starter extends BroadcastReceiver
{

@Override
public void onReceive(Context context, Intent intent)
{

    if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED))
    {
        ComponentName clipboard_monitor_service=context.startService(new Intent("com.TB.Zedit.clipboard_monitor"));

        if (clipboard_monitor_service==null)
        {
            Log.e("Zedit", "unable to start service");
        }
        else
        {
            Log.e("Zedit", "service STARTED");

        }
    }
}
}

catlog

10-07 03:30:59.280: D/asset(1177): failed to open Zip archive '/data/app/com.TB.Zedit-2.apk'
10-07 03:30:59.280: W/PackageParser(1177): Unable to read AndroidManifest.xml of /data/app/com.TB.Zedit-2.apk
10-07 03:30:59.300: W/PackageSettings(1177): Skipping PackageSetting{b300fd20 com.TB.Zedit/10054} due to missing metadata
10-07 03:30:59.620: W/PackageSettings(1177): Skipping PackageSetting{b300fd20 com.TB.Zedit/10054} due to missing metadata
10-07 03:31:08.090: W/ActivityManager(1177): No content provider found for permission revoke: file:///data/local/tmp/Zedit.apk
10-07 03:31:08.090: W/ActivityManager(1177): No content provider found for permission revoke: file:///data/local/tmp/Zedit.apk
10-07 03:31:08.200: I/PackageManager(1177): Running dexopt on: com.TB.Zedit
10-07 03:31:08.200: I/PackageManager(1177): Package com.TB.Zedit codePath changed from /data/app/com.TB.Zedit-2.apk to /data/app/com.TB.Zedit-1.apk; Retaining data and using new
10-07 03:31:08.310: I/ActivityManager(1177): Force stopping com.TB.Zedit appid=10054 user=-1: update pkg
10-07 03:31:08.310: W/PackageManager(1177): Code path for pkg : com.TB.Zedit changing from /data/app/com.TB.Zedit-2.apk to /data/app/com.TB.Zedit-1.apk
10-07 03:31:08.310: W/PackageManager(1177): Resource path for pkg : com.TB.Zedit changing from /data/app/com.TB.Zedit-2.apk to /data/app/com.TB.Zedit-1.apk
10-07 03:31:08.470: D/BackupManagerService(1177): Received broadcast Intent { act=android.intent.action.PACKAGE_ADDED dat=package:com.TB.Zedit flg=0x4000010 (has extras) }

Solution

  • i sloved this problem

    for recive ON_BOOT_COMPLETED by an app, app must have 2 feature:

    1: app must have at least one activity

    2: app must run with user at least for one time