簡體   English   中英

從頭開始創建顯式意圖,而不創建ActivityNotFoundException

[英]create explicit intent from scratch without creating an ActivityNotFoundException

我仍在努力向外部開放我的應用程序。 起初我讓一切都由MainActivity處理,但是我有2種情況(添加+刪除),其中無頭模式更好/更快/沒有閃爍等。

所以我第二次進入了我的應用清單:

<activity
        android:name=".IntStringSynchro"
        android:label="@string/headless" 
        android:theme="@android:style/Theme.NoDisplay"
        >
        <intent-filter>
            <action android:name="ADD" />
            <category android:name="android.intent.category.EMBED" />
        </intent-filter>
    </activity>

並在此處閱讀Stackoverflow,我首先在內部對其進行了測試,因此我在主要活動中添加了一個按鈕,該按鈕開始調用此活動...

所以在onClick中:

else if (p1 == testBut)
{
   String tstpathToProject = "AppProjects/IntStringIntentTester/app/src/main/res";

  Intent callIt = new Intent(this, IntStringSynchro.class);
  callIt.addCategory("android.intent.category.EMBED");
  callIt.setAction("ADD");
  callIt.putExtra("token", "testtoto");
  callIt.putExtra("value", "titi");
  callIt.putExtra("value-de", "tata");
  callIt.setAction("ADD");
  callIt.putExtra("path", tstpathToProject);//relative
  Log.d(TAG, "sending intent " + callIt + " " + callIt.getExtras());

  try
  {
    startActivityForResult(callIt, ASK_STRINGMOD);
  }
  catch (ActivityNotFoundException e)
  {
    Toast.makeText(this, "no available activity " + callIt, Toast.LENGTH_SHORT).show();
  }
}

可以避免,但是當另一個應用程序試圖建立該意圖時,它將無法工作,因為它無法訪問我應用程序的類文件,因此我將相關部分更改為

  Intent callIt = new Intent();
  callIt.setClassName("com.nohkumado.intstringsynchro", "IntStringSynchro");
  callIt.setComponent(new ComponentName("com.nohkumado.intstringsynchro", "IntStringSynchro"));
  callIt.addCategory("android.intent.category.EMBED");
  callIt.setAction("ADD");
 etc.

但這現在產生一個活動未找到異常...

我有點困惑,因為似乎沒有設置上下文的方法,該方法存在於我之前進行的本地intent調用中...組件部分是替換第一種類型中給出的顯式類實例構造函數setClassName將setComponent加倍,不是嗎?

由於這兩種方法都不起作用,所以我在某處缺少了什么,但是又怎樣呢? 就像說的那樣,事情是,我想從另一個應用程序發出這個意圖調用...

嘗試更改setComponentName構造函數的第二個參數

intent.setComponent(new ComponentName("com.package.address","com.package.address.UrActivity"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM